如何解决如何确保派生自抽象泛型类的类将自身用作泛型参数
我有一个抽象类:
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("");
}
解决方法
本文列出了泛型类型参数的所有可用约束。不幸的是,似乎没有约束可以满足您的需求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。