c# - 有没有圆括号?有什么不同?

标签 c# asp.net class conventions

我最近看到了这两件事,我有点困惑。

var blah = new MyClass() { Name = "hello" } 

var blah = new MyClass { Name = "hello" } 

有什么区别?为什么它们都有效?

更新: 这是否意味着如果我在构造函数中有一些东西需要调用第一个计算??

最佳答案

据我所知,它们是完全等价的。 C# 规范(或至少是 Microsoft 的实现)允许您在使用默认构造函数(无参数)时省略 (),只要您使用大括号(即 object initialisers 的语法)。请注意,对象初始值设定项对此处的构造函数没有影响 - new MyClass 位仍然被单独解释为对默认构造函数的调用。就个人而言,我建议您始终包含圆括号 () 以保持一致性 - 当您没有对象初始值设定项时,您需要它们。

关于c# - 有没有圆括号?有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668557/

相关文章:

c# - 我可以只使用 aspx 和 cs 文件运行 ASP.Net 应用程序吗?

c# - ApplicationDataCompositeValue 的大小

c# - 向空的 ASP.NET SignalR 组广播会浪费资源吗?

C# 将字符串拆分为数组,然后拆分为字典中的键值对

c# - 使用 Newtonsoft 的 JSON C# 问题

c# - 删除字符串中的非数字字符

c# - 通过 asp.net C# 的 Twitter statusUpdate 没有出现

c++ - 更改类中的 vector 值时出错

css - 如何使不透明度仅适用于 div 类中的背景

java - Android 上增强基色类