zoukankan      html  css  js  c++  java
  • C# 匿名对象随笔

      

     

    C#中匿名对象的一般写法是这样的:

    object o=new {Name="TestName"};


    有时候我们会尝试从这个匿名对象中获取值,在使用中发现例如已知类型的对象如T model,

    下面的代码是没有问题的:

               object value = null;
                Type objType = typeof(T);
                var propertInfo = objType.GetProperty(propertyName);
                if (propertInfo != null)
                {
                    value = propertInfo.GetValue(model, null);
                }

    但是对于匿名对象,该代码失效,原因就在于匿名对象没有自己具体的类型,所有typeof取到
    的类型里将会找不到该属性(Name),因为无法获取他的值。更为普遍的兼容做法是使用实例

    的GetType()方法:

               object value = null;
                Type objType = model.GetType();
                var propertInfo = objType.GetProperty(propertyName);
                if (propertInfo != null)
                {
                    value = propertInfo.GetValue(model, null);
                }

    这样,不管是匿名对象还是自定义(已知类型)对象的属性值都可以获取到了。

  • 相关阅读:
    洛谷P1762 偶数
    复习1
    zoj3329 One Person Game
    poj2096 Collecting Bugs
    hdu4035 Maze
    Cogs 2856. [洛谷U14475]部落冲突
    洛谷P2474 [SCOI2008]天平
    洛谷P3802 小魔女帕琪
    清北刷题冲刺 11-03 p.m
    清北刷题冲刺 11-03 a.m
  • 原文地址:https://www.cnblogs.com/denghejun/p/3745484.html
Copyright © 2011-2022 走看看