[問題] 自訂屬性問題

看板C_Sharp (C#)作者 (Byron)時間9年前 (2016/06/04 15:20), 9年前編輯推噓1(105)
留言6則, 5人參與, 最新討論串1/1
輸入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

06/04 16:53, , 1F
沒錯 就是不能
06/04 16:53, 1F

06/05 19:55, , 2F
一直覺得屬性這個東西有點多餘
06/05 19:55, 2F

06/06 18:10, , 3F
樓上...算了,要講屬性的優點實在說不完,還是不說好了-.-
06/06 18:10, 3F

06/06 22:30, , 4F
那2樓你可以不要用屬性,學java自己寫set和get,反正csharp編
06/06 22:30, 4F

06/06 22:30, , 5F
輯後也是把屬性作成get和set方法
06/06 22:30, 5F

06/09 00:13, , 6F
好語法糖不吃嗎
06/09 00:13, 6F
文章代碼(AID): #1NKe5QEv (C_Sharp)
文章代碼(AID): #1NKe5QEv (C_Sharp)