作者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://webptt.com/cn.aspx?n=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
1F:推 YahooTaiwan: 没错 就是不能 06/04 16:53
2F:→ pzyc79: 一直觉得属性这个东西有点多余 06/05 19:55
3F:→ Litfal: 楼上...算了,要讲属性的优点实在说不完,还是不说好了-.- 06/06 18:10
4F:→ O187: 那2楼你可以不要用属性,学java自己写set和get,反正csharp编 06/06 22:30
5F:→ O187: 辑後也是把属性作成get和set方法 06/06 22:30
6F:→ ricerice: 好语法糖不吃吗 06/09 00:13