C#.NET:为什么新对象需要()
本文关键字:NET 对象 为什么 新对象 | 更新日期: 2023-09-27 18:32:28
为什么当我们想要定义一个新的或数组时,我们必须输入'()',但在设置预定义值时我们不必放它?? 这个问题是针对 C# 的,它 VB.NET下面是一个示例:
C#
class Program
{
static void Main(string[] args)
{
MyClass w = new MyClass();
MyClass w = new MyClass;//this line contain an error
MyClass e = new MyClass() { ss = "" };
MyClass g = new MyClass { ss = "" };
}
}
class MyClass
{
public string ss;
}
VB.NET
Sub Main()
Dim a As my_class = New my_class()
Dim v As my_class = New my_class
Dim b As my_class = New my_class() With {.ss = ""}
Dim n As my_class = New my_class With {.ss = ""}
End Sub
Class my_class
Public ss As String
End Class
规范说:
对象创建表达式可以省略构造函数参数列表 并用括号括起来,前提是它包括对象或集合 初始 化。省略构造函数参数列表并封闭 括号等效于指定空参数列表。
这与数组初始值设定项一致:
int[] t = new[] { 1, 2, 3, 4 };
非常有趣的答案在这里:为什么 C# 3.0 对象初始值设定项构造函数括号是可选的?