【问题标题】:Javascript "var obj = new Object" Equivalent in C#Javascript“var obj = new Object”在C#中的等价物
【发布时间】:2011-10-01 08:08:54
【问题描述】:

有没有一种简单的方法可以像在 Javascript 中一样在 C# 中创建对象和设置属性。

示例 Javascript:

var obj = new Object;

obj.value = 123476;
obj.description = "this is my new object";
obj.mode = 1;

【问题讨论】:

  • 呃,你的意思是一般地创建一个对象还是创建一个实际的System.Object 并动态添加属性?

标签: c# javascript oop object translation


【解决方案1】:

试试c#匿名类

var obj = new { 
    value = 123475, 
    description = "this is my new object", 
    mode = 1 };

虽然有很多不同...

@Valera Kolupaev@GlennFerrieLive 提到了另一种使用 dynamic 关键字的方法

【讨论】:

    【解决方案2】:

    如果您想创建未绑定的对象,请使用ExpandoObject

    dynamic employee, manager;
    
    employee = new ExpandoObject();
    employee.Name = "John Smith";
    employee.Age = 33;
    
    manager = new ExpandoObject();
    manager.Name = "Allison Brown";
    manager.Age = 42;
    manager.TeamSize = 10;
    

    您的另一个选择是使用 anonymous class ,但这对您有用,前提是您将在方法范围内使用它,因为无法从方法范围之外访问对象类型信息。

    【讨论】:

      【解决方案3】:

      在 C# 中你可以这样做:

      var obj = new SomeObject {
          value = 123476,
          description = "this is my new object",
          mode = 1
      };
      

      编辑:在这里等待 OP 的澄清,因为我可能误解了他的意图。

      【讨论】:

        【解决方案4】:

        执行此操作的方法是使用 C# 4.0 动态类型,例如 Expando 对象...请参阅此主题:

        How to create a class dynamically

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-16
          • 2013-12-23
          • 1970-01-01
          • 1970-01-01
          • 2018-01-25
          • 1970-01-01
          • 2022-06-20
          • 1970-01-01
          相关资源
          最近更新 更多