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

本文关键字:对象 初始化 之间 区别 | 更新日期: 2023-09-27 18:20:01

此语法隐式调用默认构造函数

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

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

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

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

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

例如:

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

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

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

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