我有一个带有通用参数的方法:
internal void DoSomething<T>(T workWithThis)
{
}
我现在想将此方法限制为仅接受继承我要指定的几个接口之一的参数。但是我还没有找到解决方法。我想要的是这样的:
internal void DoSomething<T>(T workWithThis) where T : ISomething | ISomethingElse
{
}
显然这不起作用,所以我尝试使用静态方法检查 T 的类型:
public static bool CheckType(Type t)
{
return */check here*/
}
internal void DoSomething<T>(T workWithThis) where T : CheckType(typeof(T))
{
}
显然这也行不通。问题是为什么?为什么编译器阻止我这样做,根据我的理解,它没有理由不工作