例如:
首先定义一个借口
interface IA{}
类CB继承自IA
class CB:IA{}
现在在一个测试方法中new了一个CB,怎么判断他是IA的实例?
class Test(){
CB _cb = new CB();
if(......){
//print("_cb 继承自IA");
}
}
我试过用IsSubclassOf 好像没用:bool t2 = _cb.IsSubclassOf(typeof(IA)); ---false
bool t3 = typeof(IA).IsSubclassOf(_cb); ----false
参考这里:http://space.cnblogs.com/question/4414/
我发现上个问题的悬赏分是800分,汗一个。
你可以用IsAssignableFrom试试
typeof(CB).IsAssignableFrom(typeof(IA))
这个好像能用类的关系图的,直观的很!
class Program
{
static void Main(string[] args)
{
B b = new B();
var type = Type.GetType(b.ToString());
Console.WriteLine(typeof(IA).IsAssignableFrom(type));
}
}
public interface IA
{
void Test();
}
public class B : IA
{
public void Test()
{
Console.WriteLine("hello world");
}
}