C#通过属性名字符串获取、设置对象属性值操作示例通过属性名字符串获取、设置对象属性值操作示例
主要介绍了C#通过属性名字符串获取、设置对象属性值操作,结合实例形式总结分析了C#通过反射获取对象属性
值并设置属性值,获取对象的所有属性名称及类型等相关操作技巧,需要的朋友可以参考下
本文实例讲述了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
}
评论0