dotnet/roslyn

Improve CS9105 in static context

Open

#82,423 opened on Feb 16, 2026

View on GitHub
 (4 comments) (0 reactions) (0 assignees)C# (4,257 forks)batch import
Area-CompilersConcept-Diagnostic ClarityFeature - Primary Constructorshelp wanted

Repository metrics

Stars
 (20,414 stars)
PR merge metrics
 (Avg merge 7d 9h) (270 merged PRs in 30d)

Description

CS9105 is reported either when accessing the primary constructor within a static context (see here), or within another constructor (see here). As stated in https://github.com/dotnet/roslyn/issues/82351, this could be improved by adding a separate error for when it occurs in a static context, to point the problem out more clearly

Sample with static context (first link):

class Program(int item)
{
    static void Main()
    {
        item.ToString(); // error CS9105: Cannot use primary constructor parameter 'int item' in this context.

        // Compare with:
        this.ToString(); // error CS0026: Keyword 'this' is not valid in a static property, static method, or static field initializer
    }
}

/Program.cs(5,9): error CS9105: Cannot use primary constructor parameter 'int item' in this context.

Sample with another constructor (second link):

class Program(int item)
{
    public Program(float f) : this(0) {
        _ = item;
    }
}

/Program.cs(4,13): error CS9105: Cannot use primary constructor parameter 'int item' in this context.

Contributor guide