我有一个属性定义为......
public List<Obj> Objs { get; set; }
Run Code Online (Sandbox Code Playgroud)
我希望能够做的是在get方法中加入一些逻辑,所以它看起来像......
public List<Obj> Objs
{
get
{
if (Objs == null)
{
Objs = new List<Obj>();
}
if (Objs.Count < 1)
{
Objs.Add(new Obj());
}
return Objs;
}
set { Objs = value; }
}
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做时,我收到一个错误,告诉我函数在所有路径上都是递归的.
有没有办法在不创建私有支持字段的情况下执行此操作?
Jea*_*erc 12
你必须建立一个私人领域:
private List<Obj> _objs;
public List<Obj> Objs
{
get
{
if (_objs== null)
{
_objs= new List<Obj>();
}
if (_objs.Count < 1)
{
_objs.Add(new Obj());
}
return _objs;
}
set { _objs= value; }
}
Run Code Online (Sandbox Code Playgroud)
为什么不可能?让我们在Java中做同样的事情:
private List<Obj> objs;
public List<Obj> getListObjs()
{
...
// Recursion
return getListObjs();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6804 次 |
| 最近记录: |