C# 中的屬性訪問器遞歸是什么?我看到有關如何解決該問題的文章,但想要對其進行純粹的技術定義。有關如何解決該問題的資源:C# 屬性設置器主體,無需聲明類級屬性變量
1 回答

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
如果您將 getter 和 setter 視為方法(它們實際上是后臺的方法 - C# 只是向您隱藏了這一點),那么情況會變得更清楚。
每當您檢索屬性的值時,您都在調用 get 方法
每當設置屬性的值時,都會調用 set 方法
因此,如果您有一個如下所示的屬性:
public string MyProperty {
? ? get {
? ? ? ? return this.MyProperty;
? ? }
? ? set {
? ? ? ? this.MyProperty = value;
? ? }
}
這真的就像有這兩種方法:
string get_MyProperty() {
? ? return get_MyProperty();
}
void set_MyProperty(string value) {
? ? set_MyProperty(value);
}
您會注意到,這兩種情況都會導致無限遞歸,并以堆棧溢出結束。
所以不要那樣做?
- 1 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消