作者ravelive (Byron)
看板C_Sharp
標題[問題] 自訂屬性問題
時間Sat Jun 4 15:20:54 2016
輸入prop兩次tab後,可以自動生成一屬性,
public int MyProperty { get; set; }
假如
"只想針對屬性的get行為處理;set直接賦值"
改寫如下:
public int 自訂屬性 { get { return 自訂屬性 + 1; } set { 自訂屬性 = value; }
}
結果會出現
疑難排解例外狀況:System.StackOverflowException
其他版本
因為過多的巢狀方法呼叫而導致執行堆疊溢位 (Stack Overflow) 時,就會擲回
StackOverflowException 例外狀況。
相關秘訣
請確定沒有無限迴圈或無限遞迴的情況。
過多的方法呼叫通常指示非常深或未受限制的遞迴。
難道只能乖乖的回頭用
private int _prop;
public int prop{
get{return _prop+1;}
set{_prop=value;}
}
嗎Q_Q?
一定要宣告一個私有屬性才可以,這樣屬性一多有點難過~~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.228.206.21
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1465024858.A.3B9.html
------------------------------------------------------------------
又或者說 想要將物件設計為
class class_IPC : INotifyPropertyChanged 數值變動時通知dgv的物件
所以需要在set時進行 NotifyPropertyChanged();
如:
private int _C;
public int C
{
get { return _C; }
set
{
_ = value;
NotifyPropertyChanged();
}
}
而不能 public int C
{
get { return C; }
set
{
C = value;
NotifyPropertyChanged();
}
}
※ 編輯: ravelive (220.228.206.21), 06/04/2016 16:01:04
推 YahooTaiwan: 沒錯 就是不能 06/04 16:53
→ pzyc79: 一直覺得屬性這個東西有點多餘 06/05 19:55
→ Litfal: 樓上...算了,要講屬性的優點實在說不完,還是不說好了-.- 06/06 18:10
→ O187: 那2樓你可以不要用屬性,學java自己寫set和get,反正csharp編 06/06 22:30
→ O187: 輯後也是把屬性作成get和set方法 06/06 22:30
→ ricerice: 好語法糖不吃嗎 06/09 00:13