Я пытаюсь получить значение NULL в моей связанной переменной
Я создал три сценария. Уровень 1, уровень 2, уровень 3. Уровень 1 имеет открытую переменную уровня 2, уровень 2 имеет открытые переменные уровня 3 и устанавливает переменную объекта на уровне 3.
Используя операторы Null-Propagation, я связал их вместе и пытаюсь вывести имя объекта на уровне 3.
Я специально прокомментировал настройку level2 из функции init1 level1, чтобы вызвать ошибку.
Это работает, как и ожидалось. Затем я добавил оператор объединения нулей, чтобы определить, какое значение в моей цепочечной проверке равно нулю. Вот где я застрял.
public class Level1
{
public Level2 m_level2;
// Start is called before the first frame update
void Init()
{
//m_level2 = new Level2();
string sName = m_level2?.m_level3?.m_obj3?.name ?? throw new ArgumentNullException(nameof(m_level2), "variable cannot be null");
Console.WriteLine("Name: " + sName);
}
}
В моей консоли я получаю сообщение об ошибке
"ArgumentNullException: переменная не может быть нулевой
Имя параметра: m_level2 "
, что имеет смысл, но это только потому, что я поместил 'm_level2' в проверку nameof (), мне нужно знать, что туда вставить, чтобы он знал, какая переменная равна нулю в цепочке.