我有一个抽象类:
public abstract class MyAbstractBase<T> : INotifyPropertyChanged where T : MyAbstractBase<T> {}
在这里我得到几个类:
public class Concrete1 : MyAbstractBase<Concrete1> {};
public class Concrete2 : MyAbstractBase<Concrete2> {};
有没有一种方法可以约束MyAbstractBase,以使泛型类型是特定具体类型的类型?
因此,这将产生一个编译器错误:
public class Concrete1 : MyAbstractBase<Concrete2> {};
我当前的解决方法是在基本构造函数中进行检查,不幸的是不会抛出编译器警告。
protected MyAbstractBase()
{
_ = this as T ?? throw new Exception("");
}
本文列出了泛型类型参数的所有可用约束。不幸的是,似乎没有约束可以满足您的需求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句