Javascript “var obj = new Object” Equivalent in C#

前端 未结 4 1878
别跟我提以往
别跟我提以往 2021-02-07 10:49

Is there an easy way to create and Object and set properties in C# like you can in Javascript.

Example Javascript:

var obj = new Object;

obj.value = 123         


        
相关标签:
4条回答
  • 2021-02-07 11:03

    The way to do this is you use C# 4.0 Dynamic types like Expando Object... see this topic:

    How to create a class dynamically

    0 讨论(0)
  • 2021-02-07 11:08

    In case, if you want to create un-tyed object use 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;
    

    Your other option is to use anonymous class , but this will work for you, only if you would use it in the scope of the method, since the object type information can't be accessed from outside of the method scope.

    0 讨论(0)
  • 2021-02-07 11:14

    In C# you could do:

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

    EDIT: Holding this here pending clarification from OP as I may have misunderstood his intentions.

    0 讨论(0)
  • 2021-02-07 11:15

    try c# anonymous classes

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

    there are lots of differences though...

    @Valera Kolupaev & @GlennFerrieLive mentioned another approach with dynamic keyword

    0 讨论(0)
提交回复
热议问题