C# 检测空变量后应用程序崩溃
我有一个C# 检测空变量后应用程序崩溃,c#,winforms,C#,Winforms,我有一个TreeView,我想在那里获得NextNode,所以我做的很简单,比如: var nextNode = e.Node.NextNode.Text; 如果它有nextNode,则返回正确的值。如果它为空,则会出现问题,应用程序会崩溃并抛出 System.NullReferenceException:'对象引用未设置为 对象的实例。” System.Windows.Forms.TreeNode.NextNode.get返回空值 为什么应用程序崩溃?不应返回空变量,而应返回应用程序崩溃?似
TreeView
,我想在那里获得NextNode
,所以我做的很简单,比如:
var nextNode = e.Node.NextNode.Text;
如果它有nextNode,则返回正确的值。如果它为空,则会出现问题,应用程序会崩溃并抛出
System.NullReferenceException:'对象引用未设置为
对象的实例。”
System.Windows.Forms.TreeNode.NextNode.get返回空值
为什么应用程序崩溃?不应返回空变量,而应返回应用程序崩溃?似乎不存在
NextNode
的实例,但您尝试访问Text
属性
您有两个选择:
NextNode
对象并检查空值他们都会做同样的事情。如果
NextNode
为空,则变量thetext
将包含空字符串,否则它将包含NextNode
的Text
如果NextNode为空,则不能使用Text属性。先检查一下。
NextNode node = e.Node.NextNode;
string thetext = string.Empty;
if (node != null)
thetext = node.Text
string thetext = e.Node?.NextNode?.Text ?? string.Empty;