在c#上隐式和显式初始化对象之间的区别

时间:2015-11-01 09:53:48

标签: c# object syntax

此语法IMPLICITLY调用默认构造函数

Order order3 = new Order 
{ 
    OrderID = 124, 
    CustomerName = "leo", 
    OrderAmount= 395.00M
};

此语法EXPLICITLY调用默认构造函数

Order order3 = new Order() 
{ 
    OrderID = 124, 
    CustomerName = "leo", 
    OrderAmount= 395.00M
};

3 个答案:

答案 0 :(得分:1)

它执行相同的逻辑,只使用默认构造函数创建obj。 使用显式语法的唯一优点是可以使用不同的签名调用构造函数。

例如:

Order order3 = new Order("GUID") { 
     OrderID = 124, 
     CustomerName = "leo", 
     OrderAmount= 395.00M
};

答案 1 :(得分:0)

我没有对此进行测试,但我猜测显式版本允许您使用不同的构造函数签名;传递一个连接字符串,例如。

答案 2 :(得分:0)

没有区别。 代码的两部分都编译为:

Order order = new Order();
order.OrderID = 124;
order.CustomerName = "leo";
// etc.