dotnet/roslyn

Improve CS9105 in static context

Open

#82.423 aperta il 16 feb 2026

Vedi su GitHub
 (4 commenti) (0 reazioni) (0 assegnatari)C# (4257 fork)batch import
Area-CompilersConcept-Diagnostic ClarityFeature - Primary Constructorshelp wanted

Metriche repository

Star
 (20.414 star)
Metriche merge PR
 (Merge medio 6g 17h) (256 PR mergiate in 30 g)

Descrizione

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.

Guida contributor