Zakres wartości kopii zapasowej właściwości
Czy coś takiego jest możliwe? Zakładam, że nie, ale towygląda dobrze Dla mnie:
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!
}
}
Oczywiście wiem, że ta składnia jest niepoprawna i nie będzie się kompilować. To było hipotetycznie przyszłe C # ze względu na wyraźne przedstawienie mojego pomysłu. Przepraszam za nieco hipotetyczne pytanie, ale jest ono zbyt specyficzne dla programistów.SE.
Coś takiego może zostać zaimplementowane w kompilatorze, który będzie służył jednemu celowi: zezwalaj tylko na właściwościget
iset
akcesory, aby zobaczyć pole, zasadniczo pozwalając właściwości być samowystarczalne (jak właściwości zaimplementowane automatycznie), pozwalając jednocześnie na dodatkową logikę get / set.