gpt4 book ai didi

c# - 如何确保派生自抽象泛型类的类使用自身作为泛型参数

转载 作者:行者123 更新时间:2023-12-05 06:13:14 29 4
gpt4 key购买 nike

我有一个抽象类:

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("");
}

最佳答案

https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters

本文列出了泛型类型参数的所有可用约束。不幸的是,似乎没有任何约束可以满足您的需求。

关于c# - 如何确保派生自抽象泛型类的类使用自身作为泛型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63377371/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com