我有一个带有属性的对象,我想为其创建一个自定义setter并保持自动getter:
public class SomeObject
{
public int SomeProp { get; set; }
public Nullable<short> MyProp
{
get
{
return MyProp;
}
set
{
if (value != null)
{
SomeProp = SomeWork(value);
MyProp = value;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我在getter上遇到Stackoverflow错误.我如何实现一个属性,我保持getter原样,但只修改setter?
ror*_*.ap 16
您需要为您的财产使用支持字段.你得到一个SO错误,因为你MyProp在自己的getter中递归引用你的属性导致无限递归.
private short? _myProp;
public short? MyProp
{
get
{
return _myProp;
}
set
{
if (value != null)
{
SomeProp = SomeWork(value);
_myProp = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10612 次 |
| 最近记录: |