gpt4 book ai didi

C# 对象初始值设定项 - 包括构造函数调用括号?

转载 作者:行者123 更新时间:2023-12-04 00:16:39 25 4
gpt4 key购买 nike

我是一名新的 C# 开发人员。

我有类(class)员工

在声明对象时使用和不使用“()”有区别吗? Visual Studio 不会标记错误.例如

Employee newEmployee = new Employee() { FirstName = "David", LastName = "HasselHoff", Email_ID ="dh@fdh.com" };

Employee newEmployee = new Employee { FirstName = "David", LastName = "HasselHoff", Email_ID ="dh@fdh.com" };

最佳答案

您获得的代码示例没有任何区别。括号是完全可选的。

不过,差异会出现在几个变体中:

首先,如果您的 Employee 类有一个您想要为其提供参数的非默认构造函数,则您不能在仍将参数传递给构造函数的同时省略括号。

Employee newEmployee = new Employee(employeeId) { FirstName = "David", LastName = "HasselHoff", Email_ID ="dh@fdh.com" };

第二个:C# (9) 的下一个版本,其中类型定位得到了改进,因此如果您已经声明了要创建的类型,则无需包含类的名称:

Employee newEmployee = new() { FirstName = "David", LastName = "HasselHoff", Email_ID ="dh@fdh.com" };

在这种情况下省略括号会使编译器认为您正在尝试创建匿名类型。

关于C# 对象初始值设定项 - 包括构造函数调用括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63366862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com