Domanda

Perché è possibile utilizzare un'inizializzazione dell'oggetto per impostare una proprietà automatica impostata privata, quando l'inizializzatore è chiamato dall'interno della classe che possiede la proprietà Auto?Ho incluso due lezioni come esempio.

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;
    }
}
.

È stato utile?

Soluzione

Il modificatore private su un significatore significa - privato al tipo di allevamento.

cioè, la proprietà può essere impostata solo dal tipo contenente.

Se questo non è stato il caso, non saresti mai in grado di impostare la proprietà e sarebbe efficacemente solo lettura.

da msdn - privato (riferimento c #) : .

I membri privati sono accessibili solo all'interno del corpo della classe o della struttura in cui sono dichiarati

Altri suggerimenti

Perché il privato significa accessibile all'interno della classe che possiede proprietà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top