Skip to content

Improve CS9105 in static context #82423

@stbau04

Description

@stbau04

CS9105 is reported either when accessing the primary constructor within a static context (see here), or within another constructor (see here). As stated in #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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions