Javascript“var obj = new Object”在C#中的等价物

Posted

技术标签:

【中文标题】Javascript“var obj = new Object”在C#中的等价物【英文标题】:Javascript "var obj = new Object" Equivalent in 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 并动态添加属性? 【参考方案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

【讨论】:

以上是关于Javascript“var obj = new Object”在C#中的等价物的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript介绍

javascript的题。

javascript JavaScript isset()等效: - JavaScript

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript之基础-1 JavaScript(概述基础语法)

前端基础-JavaScript的基本概述和语法