我收到了来自ReSharper的警告消息“{1}}上的”构建者中的虚拟成员调用“:
Classification = new T();
我该如何解决这个问题呢?也许是重新设计这个结构的想法?
我想要实现的是在Dog类中创建相同的类类型,它包含通过Creature类声明的Classification。
谢谢!
答案 0 :(得分:0)
问题是这个调用在构造函数中是对setter的虚拟调用:
Classification = new T();
您可以改为添加字段支持的属性,这样可以避免此问题:
protected Creature()
{
_classification = new T();
}
private T _classification;
public virtual T Classification
{
get { return _classification; }
protected set { _classification = value; }
}
这似乎是一个奇怪的设计,但如果没有您想要实现的更多细节,我无法提供任何具体的设计建议。狗/分类示例对于具体建议来说过于笼统。上述更改将解决您当前的问题。