AFAIK,同意从构造函数访问虚拟成员是一种危险的做法.我们可以通过使用额外的步骤,方法来进行必要的初始化来克服这个问题吗?如下:
public class EntityAlpha {
public virtual string Value { get; protected set; }
public EntityAlpha(string value) {
Value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
被替换为
public class EntityAlpha {
public virtual string Value { get; protected set; }
public EntityAlpha(string value) {
AssignValue(value);
}
private void AssignValue(string value) {
Value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
使用这种额外方法会产生什么后果?像在构造函数中使用虚拟成员还是最糟糕的那样仍然很危险?!如何测试这个假设是否有害?
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |