dotnet/roslyn

Improve CS9105 in static context

Open

#82 423 ouverte le 16 févr. 2026

Voir sur GitHub
 (4 commentaires) (0 réactions) (0 assignés)C# (4 257 forks)batch import
Area-CompilersConcept-Diagnostic ClarityFeature - Primary Constructorshelp wanted

Métriques du dépôt

Stars
 (20 414 stars)
Métriques de merge PR
 (Merge moyen 6j 17h) (256 PRs mergées en 30 j)

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.

Guide contributeur