看板 C_Sharp 關於我們 聯絡資訊
輸入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