我正在尝试获取链式变量中为空的值
我已经创建了三个脚本。级别1,级别2,级别3。级别1具有级别2的公共变量,级别2具有级别3的公共变量,并在级别3中设置了对象变量。
我使用Null-Propagation运算符将它们链接在一起,并试图在level3中输出对象的名称。
我故意从级别1初始化函数中注释了级别2的设置,以引起错误。
这按预期工作。然后,我添加了一个空coalescing运算符,以尝试确定链式支票中的哪个值为空。这就是我陷入困境的地方。
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:变量不能为null 参数名称:m_level2“
这很有意义,但这仅是因为我已经将'm_level2'放入nameof()检查中,我需要知道要在其中放置什么,以便它将知道链中哪个变量为空。