考慮下面的類,其中包含一個屬性Height如何調用空引用對象
internal class TreeNode
{
public int value;
public TreeNode Left;
public TreeNode Right;
public int Height{get;private set}
}
一個TreeNode
型可變node
被初始化(即node==null
返回false)和TreeNode.Left =null
試圖node.Left.Height
的屬性會拋出NullRefrenceException,是否有任何直接的方式,以便我可以從空引用對象訪問屬性高度,以便node.Left.Height
返回-1。
我知道一種方法是使用具有簽名int getHeight(TreeNode node)
的函數,其中我可以檢查節點是否爲無效。但我想用node.Left.Height
種表達式返回所需的值。
我建議改變你的邏輯來處理null。然後使用null propogation運算符來防止Null引用異常。 –
@JeffSiver完全一樣的想法 – Sherlock
我不明白你的問題,如果一個成員爲空,這意味着*是*沒有設置,因此沒有實例可以屬於一個「高度」。它就像要求問一個不存在的房子的高度一樣。 – HimBromBeere