Использование оператора Null-Propagation с оператором null-coalescing для генерации нулевого исключения - PullRequest
2 голосов
/ 21 июня 2019

Я пытаюсь получить значение 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 (), мне нужно знать, что туда вставить, чтобы он знал, какая переменная равна нулю в цепочке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...