利用反射从C#字符串获取类的属性值

12 篇文章 0 订阅

问题

在lua里面能很容易的去利用字符串去访问属性,但是在C#里面有时候就很棘手,特别是在字符串比较多的情况下。

方法

比如我们要读取player表里面的ID,Name,Age,Position。。。。。。
但是玩家表里面会有很多数据,我们在以上四项是比较容易去读的,但是有时候在比较复杂的情况下,我们只有“ID”,“Name”,“Age”,“Position”等字符串,但是希望去读取到属性。

这个时候,就需要利用到C#的反射了。


var nameOfProperty = "ID";
var propertyInfo =player.GetType().GetProperty(nameOfProperty);
var value = propertyInfo.GetValue(player, null);

同时说一下typeof 和GetType()

都是为了获取某个实例具体引用的数据类型System.Type。

1、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名

2、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称

GetProperty() 就是得到该类的成员变量。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值