C# 对泛型参数基使用泛型类,但不使用泛型参数

C# 对泛型参数基使用泛型类,但不使用泛型参数,c#,.net,generics,C#,.net,Generics,在C#中可以做这样的事情吗 类Foo其中T:Bar{} 类MyClass,其中TFoo:Foo{} 我不想这样使用它。在现实中,它得到5+通用参数 类Foo其中T:Bar{} 类MyClass,其中TFoo:Foo{} 查看时,我们可以看到语言规范说明: 其中T: 类型参数必须是或派生自指定的基类。在C#8.0及更高版本中的可空上下文中,T必须是从指定基类派生的不可空引用类型 示例: 公共类Foo其中T:Bar { } 及 其中T:U 为T提供的类型参数必须是或派生自为U提供的参数。在可为n

在C#中可以做这样的事情吗

类Foo其中T:Bar{}
类MyClass,其中TFoo:Foo{}
我不想这样使用它。在现实中,它得到5+通用参数

类Foo其中T:Bar{}
类MyClass,其中TFoo:Foo{}
查看时,我们可以看到语言规范说明:

其中T:

类型参数必须是或派生自指定的基类。在C#8.0及更高版本中的可空上下文中,T必须是从指定基类派生的不可空引用类型

示例:

公共类Foo其中T:Bar
{
}

其中T:U

为T提供的类型参数必须是或派生自为U提供的参数。在可为null的上下文中,如果U是不可为null的引用类型,则T必须是不可为null的引用类型。如果U是可为null的引用类型,则T可以为null或不可为null

示例:

//类型参数V用作类型约束。
公共类SampleClass,其中T:V{}

一般来说,不能有这样的通用声明语法:

公共类Foo,其中T:Bar//不允许使用此语法。

因此,在上述情况下,您的最佳版本可以是:

类Foo其中T:Bar{}
类MyClass,其中TFoo:Foo{}
或者(正如@Jon正确提到的):

class Foo{}
类Foo,其中T:Bar{}
类MyClass,其中TFoo:Foo{}

不,这是不可能的。通常一种解决方法是引入一个非泛型基类(
Foo