Impostazione di un setter privato utilizzando un inizializzatore dell'oggetto
-
11-12-2019 - |
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;
}
}
. 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à.