假设我有一个方法:
public void DoStuff<T>() where T : IMyInterface {
...
}
在其他地方我想用不同的方法调用
public void OtherMethod<T>() where T : class {
...
if (typeof(T) is IMyInterface) // have ascertained that T is IMyInterface
DoStuff<T>();
}
有什么方法可以将 T 转换为具有我的界面吗?
DoStuff<(IMyInterface)T>
和其他类似的变化对我不起作用。
编辑:感谢您指出typeof(T) is IMyInterface
检查接口的错误方法,而应该在 T 的实际实例上调用。
Edit2:我发现它(IMyInterface).IsAssignableFrom(typeof(T))
在检查界面时起作用。