entiendo por qué desea utilizar una propiedad de sólo lectura utilizando la siguiente sintaxis:Propiedades de escritura, ¿cuál es el punto?
private int _MyInt;
public int MyInt
{
get { return _MyInt; }
}
En este ejemplo, probablemente no es el mejor, porque creo que las propiedades de sólo lectura realmente brillan en conjunción con una readonly
variable, pero eso está al lado del punto. Lo que no entiendo es por qué utilizar una propiedad de sólo escritura utilizando la siguiente sintaxis:
private int _MyInt;
public int MyInt
{
set { _MyInt = value; }
}
Es así como propiedades de sólo lectura se describen en diversos libros y tutoriales. Si configura la variable, leería conceptualmente en un punto de, al menos internamente a la clase, pero para leerlo incluso internamente dentro de la clase, lo haría al acceder al _MyInt
que creo que viola el espíritu de encapsulado cuyas propiedades intenta hacer cumplir. En su lugar, ¿por qué no sólo tiene que utilizar toda la potencia de la propiedad con diferentes modifica de acceso para acceder a él como tal:
private int _MyInt;
public int MyInt
{
set { _MyInt = value; }
private get { return _MyInt; }
}
Lo que por supuesto solo se puede escribir
public int MyInt { set; private get; }
sigue recibiendo el encapsulación, pero restringe el acceso a otras clases, por lo que sigue siendo de escritura solo para clases externas.
A menos que exista un caso en el que honestamente quiera asignar una variable pero nunca tener acceso a ella, en cuyo caso me gustaría saber cuándo surgirá esta necesidad.
Si no desea utilizar una sintaxis en particular, puede hacerlo. –
Al menos con WPF y el patrón MVVM, puede exponer una propiedad en ViewModel destinada a un enlace 'OneWayToSource' en la vista. En este caso, solo necesitarías el colocador. Pero no impide tener un getter, también, y de hecho sería inofensivo (y probablemente útil) incluirlo de todos modos. Entonces quizás eso todavía no se aplique ... –
'if (False)'. ¿Cuál es el punto de? – Aphex