我有一项任务需要学习和理解别人的代码,并且看到一些构造如下的构造函数:
string someString;
public myClass(string someString = null){
this.someString = someString;
}
我的问题是,这是否是用null初始化变量的“最佳”方法?
因为我总是这样:
string someString;
public myClass(){
someString = null;
}
或者这样(即使我可以看到这种方法的问题):
string someString = null;
public myClass(){
}
编辑:将int更改为字符串
答案 0 :(得分:1)
您正在阅读的代码与要编写的代码之间的区别在于,前者允许(但不是必需)将对象的int设置为所需的值;你的没有。
我可以通过以下方式创建不同版本的MyClass
MyClass myClass = new MyClass(5); //someInt initialised as 5
MyClass mySecondClass = new MyClass(10); //someInt initialised as 10
MyClass nullClass = new MyClass(); //someInt initialised as null
以您的方式; someInt的值是在代码中设置的,无法轻易更改
答案 1 :(得分:0)
public myClass(int? someInt = null)
这是可选参数构造函数,如果您传递变量,它将设置,否则它将为变量分配null。例如: myClass(10); //将10设置为someInt 我的课(); //将null设置为someInt
public myClass(){
someInt = null;
}
这意味着在每种情况下,它将使用null初始化变量。