¿Es posible algo como esto? No estoy asumiendo, pero se ve bien a mí:Alcance del valor de respaldo de la propiedad
class MyClass {
public int Foo {
get { return m_foo; }
set {
// Bounds checking, or other things that prevent the use
// of an auto-implemented property
m_foo = value;
}
// Put the backing field actually *in* the scope of the property
// so that the rest of the class cannot access it.
private int m_foo;
}
void Method() {
m_foo = 42; // Can't touch this!
}
}
Por supuesto que sé esta sintaxis es incorrecta, y esto no se compilará. Era hipotético-futuro-C# por el bien de retratar claramente mi idea. Me disculpo por la pregunta algo hipotética, pero es demasiado específica para Programmers.SE.
Algo como esto podría implementarse en el compilador que serviría para un propósito: permitir únicamente los accesores get
y set
de la propiedad para ver el campo, permitiendo esencialmente que la propiedad sea independiente (como propiedades auto implementadas) mientras permitiendo una lógica get/set adicional.
¿Es esta una pregunta simple sí/no (porque entonces es ** no **), o quieres soluciones alternativas a este "problema"? –
Tengo curiosidad por lo que estás tratando de lograr al hacer esto? –
Sería muy interesante con soluciones alternativas. Podría ser una buena característica forzar el uso de la propiedad en lugar de la variable dentro de la clase misma. Porque esa debe ser la meta con esto, ¿verdad? –