美文网首页
利用反射从C#字符串获取属性值

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

作者: xiaogeformax | 来源:发表于2018-07-06 00:53 被阅读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() 就是得到该类的成员变量。

    相关文章

      网友评论

          本文标题:利用反射从C#字符串获取属性值

          本文链接:https://www.haomeiwen.com/subject/epnmuftx.html