C# 中的GetType()问题,可以加判断吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中的GetType()问题,可以加判断吗?相关的知识,希望对你有一定的参考价值。
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
result.Columns.Add(pi.Name, pi.PropertyType);
propertys 里面是属性数组.
比如 里面有一个 bool类型的.我怎么判断他是一个bool类型
如果是这样
foreach (PropertyInfo pi in propertys)
. if(propertys.GetType().FullName=="bool")
result.Columns.Add(pi.Name, pi.PropertyType);
这样写我觉得这个太写死了.有什么活的方法 就是不用if 判断来做
foreach (PropertyInfo pi in propertys)
//判断属性是否为bool类型
if (pi.PropertyType == typeof(bool))
参考技术A 如果是只对bool类型操作,建议还是用if来判断,如果还要对多个类型分别操作,可以使用switch 参考技术B 通过PropertyInfo类的PropertyType属性判断
foreach (PropertyInfo pi in propertys)
//判断属性是否为bool类型
if (pi.PropertyType == typeof(bool))
C# typeof 与GetType()的区别
C#中Type类的介绍:https://msdn.microsoft.com/zh-cn/library/system.type(VS.80).aspx
C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称;GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用
两者区别:
1、Typeof是运算符而是方法
2、GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用(初始化以后)
3、Typeof的参数只能是int,string,String,自定义类型,且不能是实例
4、GetType()和typeof都返回System.Type的引用.
5、TypeOf():得到一个Class的Type
6、 GetType():得到一个Class的实例的Type
以上是关于C# 中的GetType()问题,可以加判断吗?的主要内容,如果未能解决你的问题,请参考以下文章