Как установить значение для закрытого поля при помощи автоматических свойств в C#

class Person{
    private static int age { get; set; }
}

 class Program
{ 
    static void Main(string[] args)
    {
        Person.age = 10;//так не работает
    }        
}

Но вот так можно добраться до закрытого свойства:

 class Person
{
    private static int age;
    public static int Age
    {
        get
        {
            return age;
        }
        set
        {
            age = value;
        }
    }
}

 class Program
{ 
    static void Main(string[] args)
    {
        Person.Age = 10;
    }        
}

Ответы (1 шт):

Автор решения: aepot

Сделайте свойство публичным

class Person
{
    public static int age { get; set; }
}
Person.age = 10; // так работает

Если вам "все понятно" с обычными свойствами, то вот так выглядит ваше автосвойство после обработки компилятором.

internal class Person
{
    private static int <age>k__BackingField;

    private static int age
    {
        get
        {
            return <age>k__BackingField;
        }
        set
        {
            <age>k__BackingField = value;
        }
    }
}
→ Ссылка