Dan*_*ico 7 .net c# constructor
可能重复:
对象初始值设定项和构造函数之间有什么区别?
在c#中,您可以构造一个对象,如:
public class MyObject{
int val1;
int val2;
public MyObject(int val1, val2){
this.val1 = val1;
this.val2 = val2;
}
}
Run Code Online (Sandbox Code Playgroud)
附:
MyObject ob = new MyObject(1,2);
Run Code Online (Sandbox Code Playgroud)
或者:
MyObject ob = new MyObject(){ val1 = 1, val2 = 2 };
Run Code Online (Sandbox Code Playgroud)
这种构造函数之间有什么不同?
RB.*_*RB. 18
MyObject ob = new MyObject(){ val1 = 1, val2 = 2 };
Run Code Online (Sandbox Code Playgroud)
只是语法糖(即速记)
MyObject ob = new MyObject();
ob.val1 = 1;
ob.val2 = 2;
Run Code Online (Sandbox Code Playgroud)
两者之间的一个区别是,您可以从构造函数中设置只读字段,但不能使用速记.
第二个区别是带参数的构造函数强制客户端提供这些值.有关背景读数的详细信息,请参阅构造函数注入与Setter注入.