Правильный способ инициализировать переменную с нуля при создании объекта? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть задача, где я должен изучать и понимать чужой код, и я вижу некоторые конструкторы, которые построены следующим образом:

string someString;

public myClass(string someString = null){
  this.someString = someString;
}

Мой вопрос, является ли это "лучшим""способ инициализации переменной с нулевым значением?

Потому что я всегда делал это так:

string someString;

public myClass(){
  someString = null;
}

Или вот так (хотя я вижу проблему с этим подходом):

string someString = null;

public myClass(){
}

Редактировать: изменено int на строку

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Разница между кодом, который вы читаете, и кодом, который вы пишете, состоит в том, что первый позволяет (но не требует) вам устанавливать someInt на желаемое значение при создании объекта; твой нет.

я могу создавать разные версии 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 устанавливается в коде и не может быть легко изменено

0 голосов
/ 27 марта 2019
public myClass(int? someInt = null)

Это означает, что необязательный конструктор параметров, если вы передадите переменную, она будет установлена, иначе она присвоит переменной значение null. например: MyCLASS (10); // установим 10 в someInt мои занятия(); // установим null в someInt

public myClass(){
  someInt = null;
}

Это означает, что в каждом случае будет инициализировать переменную с нулевым значением.

...