这篇文章主要介绍了C# PropertyInfo类案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
对一个对象进行属性分析,并得到相应的属性值,并判断属性的默认值以及空值
公共阶层的人
{
公共字符串名称{获取设置;}
公共int age { get设置;}
公共日期时间生日{获取设置;}
public bool isActive { get设置;}
公共列表地址地址{获取设置;}
}
公共类地址
{
公共字符串国家{获取设置;}
公共字符串省{获取设置;}
公共字符串城市{获取设置;}
}
班级计划
{
静态void Main(string[] args)
{
列表地址地址=新的列表地址()
{
新地址(){
国家='中国,
省份='安徽,
city='蚌埠,
},
新地址(){
国家='中国,
城市='上海,
},
};
人物人物=新人()
{
name='王启龙,
年龄=23,
生日=转换。今日时间(' 2018-09-15 '),
isActive=true,
地址=地址
};
字符串str=方法(人);
}
公共静态字符串方法(对象obj)
{
string str=
类型postType=obj .GetType();
property info[]postTypeInfos=文章类型.获取属性();//返回为当前类型的所有公共属性,PropertyInfo[] PropertyInfo的所有公共属性的类型对象数组
foreach(postTypeInfos中的物业信息p)
{
if(p .属性类型。全名==日期时间类型.全名)
{
DateTime pValue=(DateTime)p . GetValue(obj,null);
if (pValue!=null pValue!=日期时间MinValue)//日期时间类型申明时默认值为最小值
{
str=p . Name ':' pValue ';';
}
}
else if(p .属性类型。全名==类型(int 32).全名)
{
int pValue=(int)p.GetValue(obj,null);
if (pValue!=0) //int类型申明时默认值为最小值0
{
str=p . Name ':' pValue ';';
}
}
else if(p .属性类型。全名==类型(布尔型).全名)
{
Object pValue=p.GetValue(obj,null);
str=p . Name ':' pValue ';';
}
else if(p .属性类型。全名==类型(字符串).全名)
{
Object pValue=p.GetValue(obj,null);
str=p . Name ':' pValue ';';
}
//如果传入的对象包含集合,集合中是另个对象
else if(p .属性类型。全名==列表地址类型.全名)
{
list address list=(list address)p . GetValue(obj,null);
如果(列表!=空)
{
foreach(地址列表中的地址)
{
str=p.Name ':'地址.国家','地址.省','地址。城市';';
}
}
}
}
返回字符串;
}
}
结果:"姓名:王启龙;年龄:23;生日:2018/9/15 0:00:00;isActive:真;地址:中国安徽蚌埠;地址:中国上海
关于财产信息类信息:https://个文档。微软。com/zh-cn/点网/API/system。反思。房产信息?view=netframework-1.1
这就是本文对C# PropertyInfo案例的详细解释。有关C# PropertyInfo的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。