能够通过is或者as关键词判断一个变量是否是接口类型?
public static void Judge(object ma)
{
var ta = ma.GetType(); //通过Type可以对传入的参数类型进行基本类型的判断
Console.WriteLine(ta.IsEnum); //枚举
Console.WriteLine(ta.IsValueType); //值类型
Console.WriteLine(ta.IsInterface); //接口
Console.WriteLine(ta.IsClass); //引用类型
Console.WriteLine();
Console.WriteLine(ma is Enum); //枚举
Console.WriteLine(ma is ValueType); //值类型
Console.WriteLine(ma is object); //必然为真
//Console.WriteLine(ma is interface); //不实例化Type,怎么判断是否变量是否是接口?
}
------解决思路----------------------
任何一个值的真实类型都不可能是一个接口类型,你可以从Type.GetInterfaces()获取这个数据类型相关的所有接口。
------解决思路----------------------
只有明确了接口类型定义才存在JIT层面的接口类型的值,它的本质就是一个查询表,但是这个对于应用层面是透明的。
------解决思路----------------------
用 xxx is ValueType