将C#通用约束指定为ClassA或ClassB?

Sco*_*ott 8 c# generics

有没有办法指定泛型类型是一种类型还是另一种类型?

public class SoftDrink<T>
    where T : TypeOne or TypeTwo
{ }
Run Code Online (Sandbox Code Playgroud)

Sap*_*pph 8

不,因为这没有任何意义.如果您尝试访问"T"的成员函数,编译器如何告诉哪个基类尝试并解析成员?

您可以尝试为TypeOne和TypeTwo创建一个公共接口,并让约束指定该接口?你准备完成什么?