当前位置: 代码迷 >> C# >> 如何判断一个变量的值是接口类型
  详细解决方案

如何判断一个变量的值是接口类型

热度:96   发布时间:2016-05-05 02:45:44.0
怎么判断一个变量的值是接口类型?
能够通过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 
  相关解决方案