我正在编写一个小示例来练习创建类的新实例。
我有以下代码:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class MainClass
{
static void Main()
{
var p = new Person
{
Name = "Harry",
Age = 20
};
Console.WriteLine($"Name: {p.Name}. Age: {p.Age}");
p = new Person()
{
Name = "Hermonie",
Age = 18
};
Console.WriteLine($"Name: {p.Name}. Age: {p.Age}");
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
它正在工作。
我的问题:有什么区别
var p = new Person {};
Run Code Online (Sandbox Code Playgroud)
和
var p = new Person() {};
Run Code Online (Sandbox Code Playgroud)
我应该使用哪个版本?
在这种情况下没有区别,它们都调用默认构造函数。如果有另一个带参数的构造函数,差异将很明显:
var o = new Person { ... };
var p = new Person("John") { ... };
Run Code Online (Sandbox Code Playgroud)
仅当不使用初始化时才需要空括号:
var p = new Person(); // Works
var o = new Person; // Error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10386 次 |
| 最近记录: |