我可以这样做:
public void Foo<T>(int param) where T: MYCLASS1, MYCLASS2
Run Code Online (Sandbox Code Playgroud)
要指定T只是MYCLASS1或MYCLASS2实例?
谢谢..
不,当您指定泛型类型约束时,泛型类型参数必须满足所有约束,而不仅仅是其中之一.你的代码写的手段T必须同时继承MYCLASS1和MYCLASS2,因为C#不支持多重继承,这是不可能.泛型类型约束可以是以下组合:
new()约束(即类型必须有一个参数的构造函数)struct或者class不是两者,因为类型不能是值类型和引用类型)