C#通过属性名字符串获取、设置对象属性值操作示例

Aurora ·
更新时间:2024-11-14
· 521 次阅读

本文实例讲述了C#通过属性名字符串获取、设置对象属性值操作.分享给大家供大家参考,具体如下:

#通过反射获取对象属性值并设置属性值

0、定义一个类

public class User { public int Id { get; set; } public string Name { get; set; } public string Age { get; set; } }

1、通过属性名(字符串)获取对象属性值

User u = new User(); u.Name = "lily"; var propName = "Name"; var propNameVal = u.GetType().GetProperty(propName).GetValue(u, null); Console.WriteLine(propNameVal);// "lily"

2、通过属性名(字符串)设置对象属性值

User u = new User(); u.Name = "lily"; var propName = "Name"; var newVal = "MeiMei"; u.GetType().GetProperty(propName).SetValue(u, newVal); Console.WriteLine(propNameVal);// "MeiMei" #获取对象的所有属性名称及类型

通过类的对象实现

User u = new User(); foreach (var item in u.GetType().GetProperties()) { Console.WriteLine($"propName:{item.Name},propType:{item.PropertyType.Name}"); } // propName: Id,propType: Int32 // propName:Name,propType: String // propName:Age,propType: String

通过类实现

foreach (var item in typeof(User).GetProperties()) { Console.WriteLine($"propName:{item.Name},propType:{item.PropertyType.Name}"); } // propName: Id,propType: Int32 // propName:Name,propType: String // propName:Age,propType: String #判断对象是否包含某个属性 static void Main(string[] args) { User u = new User(); bool isContain= ContainProperty(u,"Name");// true } public static bool ContainProperty( object instance, string propertyName) { if (instance != null && !string.IsNullOrEmpty(propertyName)) { PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName); return (_findedPropertyInfo != null); } return false; }

将其封装为扩展方法

public static class ExtendLibrary { /// <summary> /// 利用反射来判断对象是否包含某个属性 /// </summary> /// <param name="instance">object</param> /// <param name="propertyName">需要判断的属性</param> /// <returns>是否包含</returns> public static bool ContainProperty(this object instance, string propertyName) { if (instance != null && !string.IsNullOrEmpty(propertyName)) { PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName); return (_findedPropertyInfo != null); } return false; } } static void Main(string[] args) { User u = new User(); bool isContain= u.ContainProperty("Name");// true }

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#数据结构与算法教程》、《C#遍历算法与技巧总结》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》

希望本文所述对大家C#程序设计有所帮助。

您可能感兴趣的文章:C#编程获取实体类属性名和值的方法示例C#通过属性名称获取(读取)属性值的方法C# 获取属性名的方法C#实现读取匿名对象属性值的方法示例总结C#动态对象(dynamic)详解(实现方法和属性的动态)C#实现获取不同对象中名称相同属性的方法C#中使用反射遍历一个对象属性及值的小技巧C#利用反射来判断对象是否包含某个属性的实现方法



C# 示例 属性值 属性 对象 字符串 字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号