具有指定类型的通用方法

bAN*_*bAN 4 c# generics

我可以这样做:

public void Foo<T>(int param) where T: MYCLASS1, MYCLASS2
Run Code Online (Sandbox Code Playgroud)

要指定T只是MYCLASS1或MYCLASS2实例?

谢谢..

Tho*_*que 6

不,当您指定泛型类型约束时,泛型类型参数必须满足所有约束,而不仅仅是其中之一.你的代码写的手段T必须同时继承MYCLASS1MYCLASS2,因为C#不支持多重继承,这是不可能.泛型类型约束可以是以下组合:

  • 基类(只允许一个)
  • 一个或几个接口
  • new()约束(即类型必须有一个参数的构造函数)
  • 或者是(struct或者class不是两者,因为类型不能是值类型引用类型)