Javascript "var obj = new Object"在c#中等价

本文关键字:quot var obj Javascript new Object | 更新日期: 2023-09-27 18:01:29

是否有一种简单的方法可以像在Javascript中那样在c#中创建对象和设置属性?

示例Javascript:

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

Javascript "var obj = new Object"在c#中等价

try c#匿名类

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

尽管有很多不同之处……

@Valera Kolupaev &@GlennFerrieLive提到了另一种使用动态关键字

的方法

在这种情况下,如果您想创建无类型对象,请使用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;

你的另一个选择是使用匿名类,但这对你来说是可行的,只有当你在方法范围内使用它,因为对象类型信息不能从方法范围外访问。

在c#中你可以这样做:

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

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

要做到这一点,你可以使用c# 4.0动态类型,如Expando Object…参见本主题:

如何动态创建类