Ist so etwas möglich? Ich gehe davon aus nicht, aber es sieht gut aus mir:Eigenschaft Hintergrund Wertbereich
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!
}
}
Natürlich weiß ich diese Syntax falsch ist, und dies wird nicht kompiliert. Es war hypothetisch-Zukunft-C#, um meine Idee klar darzustellen. Ich entschuldige mich für die etwas hypothetische Frage, aber es ist zu spezifisch für Programmers.SE.
So etwas wie dies im Compiler implementiert werden könnte, die einen Zweck dienen würden: Nur das get
Eigentum ermöglichen und set
Accessoren das Feld zu sehen, die im Wesentlichen die Eigenschaft ermöglicht umluftunabhängigem zu sein (wie automatisch implementierte Eigenschaften sind), während Erlaube zusätzliche Get/Set-Logik.
Ist dies eine einfache Ja/Nein-Frage (denn dann ist es ** nein **), oder wollen Sie alternative Lösungen für dieses "Problem"? –
Ich bin nur neugierig, was Sie damit erreichen wollen? –
Es wäre sehr interessant mit alternativen Lösungen. Es könnte ein nettes Feature sein, um die Verwendung der Eigenschaft und nicht der Variablen in der Klasse selbst zu erzwingen. Denn das muss das Ziel sein, oder? –