Стоит ли проверять на null и кидать NullReferenceException при работе с необнуляемыми ссылочными типами?
В C# с версии 8.0 появилось понятие NRT (обнуляемые ссылочные типы). Это позволяет "сказать" компилятору о том что все ссылочные типы, кроме специально помеченых знаком '?', НЕ должны допускать null. Однако, насколько я понимаю, это работает лишь на уровне предупреждений и ничто не мешает сделать так:
#nullable enable
string notNullText = null; // с предупреждением, но скомпилируется
Учитывая вышесказанное возникает вопрос, которые я совмещу с кодом:
#nullable enable
public class ClassA
{
public ClassA(string parameter)
{
// тут parameter считается не нулевым, однако, как я уже показал в предыдущем примере, он всё же может быть null
// Вопрос: стоит ли тут писать if (parameter is null) throw new ArgumentNullException()
}
}