【发布时间】:2023-04-09 06:15:02
【问题描述】:
我正在用 C# 编写基于工厂模式的解决方案。
如果有Abstract class 称为Animal,Animal 的任何子类都将通过工厂模式通过传递类型来实例化。
public abstract class Animal
{
protected abstract void Constructor();
public Animal()
{
Constructor();
}
}
public class Dog : Animal
{
protected override void Constructor()
{
//Constructor Code here
}
}
我不会让我的任何队友滥用上面的代码,在他们的子类中声明他们自己的公共构造函数(例如:cat)并直接调用构造函数(例如:Animal cat = new Cat();)而不使用工厂。
如何创建在编译此类时会抛出错误的代码分析规则?
【问题讨论】:
-
说实话,我不确定为什么你会想要这样做。仅仅使用构造函数会给你带来什么?也许您应该向我们展示工厂的代码?哦,您可能还想了解CA2214 和when initializers are executed。
标签: c# visual-studio oop roslyn roslyn-code-analysis