博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#类的属性遍历及属性值获取
阅读量:4302 次
发布时间:2019-05-27

本文共 1750 字,大约阅读时间需要 5 分钟。

1、定义一个类

public class Person{     public string Name { get; set; }     public int ID { get; set; }}

2、获取属性

方法一、定义一个类的对象获取

Person p = new Person();foreach (System.Reflection.PropertyInfo info in p.GetType().GetProperties()){    Console.WriteLine(info.Name);}

方法二、通过类获取

var properties = typeof(Person).GetProperties();foreach (System.Reflection.PropertyInfo info in properties){   Console.WriteLine(info.Name);}

3、通过属性名获取对象属性值

p.Name = "张三";var name = p.GetType().GetProperty("Name").GetValue(p, null);Console.WriteLine(name);

4、完整代码及结果显示

复制代码

var properties = typeof(Person).GetProperties();foreach (System.Reflection.PropertyInfo info in properties){   Console.WriteLine(info.Name);}Console.WriteLine("另一种遍历属性的方法:"); Person p = new Person();foreach (System.Reflection.PropertyInfo info in p.GetType().GetProperties()){   Console.WriteLine(info.Name);}            Console.WriteLine("通过属性值获取属性:"); p.Name = "张三";var name = p.GetType().GetProperty("Name").GetValue(p, null);Console.WriteLine(name);Console.ReadLine();

复制代码Type t = tc.GetType();//获得该类的Type

//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
foreach (PropertyInfo pi in t.GetProperties
{
object value1 = pi.GetValue(tc, null));//用pi.GetValue获得值
string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
//获得属性的,进行判断然后进行以后的操作,例如判断获得的属性是
if(value1.GetType() == typeof(int))
{
//进行你想要的操作
}
}
public int Pid
{
get { return pid; }
set { pid = value; }
}

 

 

//****************

  public void InitialProperty()//初始化设定

        {
            System.Reflection.PropertyInfo[] properties = this.GetType().GetProperties();
            foreach(var v in properties)
            {
               string type= v.PropertyType.Name;
                if (type=="String")
                {
                    v.SetValue(this,"456",null);
                }
                else if(type=="Bitmap")
                {
                    v.SetValue(this, new Bitmap(Image.FromFile("1.png")), null);
                }
               

            }

           

        }

转载地址:http://awlws.baihongyu.com/

你可能感兴趣的文章
How it works(2) autocannon源码阅读(A)
查看>>
How it works(3) Tilestrata源码阅读(A)
查看>>
How it works(4) Tilestrata源码阅读(B) 地图负载均衡
查看>>
How it works(5) TileStache源码阅读(A) 核心框架
查看>>
How it works(6) TileStache源码阅读(B) 自带功能模块
查看>>
How it works(7) GDAL2Mbtiles源码阅读(A) 框架与存储
查看>>
How it works(8) GDAL2Mbtiles源码阅读(B) 影像切割与处理
查看>>
How it works(9) GDAL2Mbtiles源码阅读(C) 影像预处理与核心流程
查看>>
How it works(10) NodeODM源码阅读(A) 鉴权与任务初始化
查看>>
How it works(11) NodeODM源码阅读(B) 任务控制与任务后处理
查看>>
How it works(12) Tileserver-GL源码阅读(A) 服务的初始化
查看>>
How it works(13) Tileserver-GL源码阅读(B) 栅格瓦片的渲染
查看>>
视频直播地址解析下载教程(支持抖音,西瓜,虎牙,斗鱼...)
查看>>
短视频去水印在线下载教程(抖音,西瓜,皮皮虾,微视,最右...)
查看>>
虎牙直播地址解析下载教程
查看>>
bilibili直播地址解析下载教程
查看>>
Gradle学习 - json操作
查看>>
Gradle学习 - xml操作
查看>>
java+sql server 数据库实现英才大学图书管理系统 第一部分 连接数据库及界面实现
查看>>
面试——操作系统
查看>>