Установка частного установщика с использованием инициализатора объекта

StackOverflow https://stackoverflow.com//questions/10651270

Вопрос

Почему можно использовать инициализатор объекта для установки частного свойства auto, если инициализатор вызывается из класса, которому принадлежит свойство auto?В качестве примера я включил два класса.

public class MyClass
{
    public string myName { get; private set; }
    public string myId { get; set; }

    public static MyClass GetSampleObject()
    {
        MyClass mc = new MyClass
        {
            myName = "Whatever", // <- works
            myId = "1234"
        };
        return mc;
    }


}

public class MyOtherClass
{
    public static MyClass GetSampleObject()
    {
        MyClass mc = new MyClass
        {
            myName = "Whatever", // <- fails
            myId = "1234"
        };
        return mc;
    }
}
Это было полезно?

Решение

А private Модификатор в установщике означает - частный для включающего типа.

То есть свойство может быть установлено только содержащим его типом.

Если бы это было не так, вы бы никогда не смогли установить это свойство, и оно фактически было бы доступно только для чтения.

Из MSDN - частный (ссылка на C#):

Закрытые члены доступны только внутри тела класса или структуры, в которой они объявлены.

Другие советы

Потому что частные средства доступны в классе, который принадлежит свойству.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top