ame*_*esh 3 c# oop constructor object
C#将允许使用Object()或Object {}创建对象.与Object()和Object {}有什么区别
public item getitem()
{
return new item()
}
public item getitem()
{
return new item {}
}
Run Code Online (Sandbox Code Playgroud)
这个语法:
new SomeType{}
Run Code Online (Sandbox Code Playgroud)
是一个对象初始化表达式,碰巧没有设置任何属性.它隐式调用无参数构造函数.您可以在大括号内添加属性分配:
new SomeType { Name = "Jon" }
Run Code Online (Sandbox Code Playgroud)
这个语法:
new SomeType()
Run Code Online (Sandbox Code Playgroud)
是刚刚到参数的构造函数的调用,没有机会来设置属性.
请注意,您也可以使用对象初始值设定项显式调用构造函数(或者是否为参数):
// Explicit parameterless constructor call
new SomeType() { Name = "Jon" }
// Call to constructor with parameters
new SomeType("Jon") { Age = 36 }
Run Code Online (Sandbox Code Playgroud)
有关对象初始值设定项的更多详细信息,请参见C#4规范的7.6.10.2节.
我强烈建议,如果您没有设置任何属性,您只需使用new SomeType()
清晰度.在没有设置任何属性的情况下使用对象初始值设定器很奇怪.
归档时间: |
|
查看次数: |
512 次 |
最近记录: |