• C# ECMAtype Object,可以赋值任意名称、任意值类型的属性


    System.Dynamic.ExpandoObject 配合 dynamic关键字,可以创造出一种 ECMA风格的object,其功能为,可以直接为它赋值任意名称、任意值类型的属性

    1 dynamic obj = new System.Dynamic.ExpandoObject();
    2 
    3 obj.intValue = 123;
    4 
    5 obj.strValue = "234";
    6 
    7 obj.XXClass = new XXClass();


    不过,有网友指出,这种东西不好。原因如下:

    1.php就是因为这种磨砺两可的东西太多了,导致了语言的不稳定性。主要表现在:

       1.1 属性是否存在(null判断)会出问题。比如,有时明明为null,但某种判断Null的方法,得出的结果却认为它不为null

       1.2 属性类型判断会出问题。比如有继承关系的。

       1.3 以上两者,在开发中,为了保证正确性,实际代价远远大于使用这种类型得来的好处。

    2.dynamic关键字会屏蔽了IDE的自动提示和自动补全功能,即使 = new XXX() 这种指明了创建何种类后,依然如此。

  • 相关阅读:
    OpenJudge 6042 雇佣兵
    POJ 1741 树上 点的 分治
    Codevs 1695 Windows2013
    复制书稿
    乘积最大
    编辑距离问题
    石子合并
    最大正方形子矩阵
    选菜
    混合背包
  • 原文地址:https://www.cnblogs.com/xxxteam/p/3006672.html
Copyright © 2020-2023  润新知