Mic*_*zoe 5 c# class-design properties
我有一个User类.其中一个属性需要是"关联"用户,因此它的类型需要是User.现在,当我初始化类时,我尝试初始化Associated属性时会出现堆栈溢出.当前代码:
public class User {
public User() {
this.Associated = new User();
}
public User Associated { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是可行的还是我在错误的树上吠叫?
User.Associated是否必须在建设中填充?如果从构造函数中删除赋值,则不应该得到SO.
你得到一个SO的原因是因为当你构造一个User()它构造一个User()反过来构造一个User()并且它一直是乌龟的时候.
您可以为聚合类使用延迟加载方法User,而不是在构造函数中初始化它:
public class User {
private User _user;
public User Associated
{
get
{
if (_user == null)
_user = new User();
return _user;
}
}
}
Run Code Online (Sandbox Code Playgroud)