知道类型参数是否实现 c# 2.0 中的接口的更简单方法是什么?
-
01-07-2019 - |
题
例如,给定一个类型参数方法,我正在寻找类似粗体部分的内容
void MyMethod<T>() {
如果 ( typeof(T).Implements( 我的界面 ) ) {//Do something
别的
//Do something else
}
也欢迎使用 C# 3.0 的答案,但请先放弃 .NET 2.0 的答案;)
解决方案
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
其他提示
我认为
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
还应该工作:但我没有看到优势...
Ï刚刚尝试使用
if( typeof(T).Equals(typeof(IMyInterface) )
...
而且也有效,但你的答案似乎更可靠,这正是我所寻找的。谢谢!
不隶属于 StackOverflow