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

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗 獲得超6個贊
如果您將 getter 和 setter 視為方法(它們實際上是后臺的方法 - C# 只是向您隱藏了這一點),那么情況會變得更清楚。
每當(dāng)您檢索屬性的值時,您都在調(diào)用 get 方法
每當(dāng)設(shè)置屬性的值時,都會調(diào)用 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);
}
您會注意到,這兩種情況都會導(dǎo)致無限遞歸,并以堆棧溢出結(jié)束。
所以不要那樣做?
- 1 回答
- 0 關(guān)注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消