簡體   English   中英

C# 對象可以為“null”但仍具有屬性嗎?

[英]Can a C# object be 'null' but still have properties?

我有一個對象,我可以在調試控制台中打印它的屬性(如'name'、'id'、...)。 在下一行,我打印對象本身,然后得到“null”。 有點像這樣:

Debug.Log($"Item name is {item.name}");
Debug.Log($"Item is {item}");
if (item == null)
{
    Debug.Log("Yes, item is null!");
}

所以第一行將打印一個正確的名稱,第二行打印'null'。 第三行打印“是的,項目為空!”。

這怎么可能? (我不知道這是否相關,但這發生在 Unity 的代碼中。)

謝謝你,阿諾。

這是因為 UnityEngine.Object 重載==!=bool運算符。

https://docs.unity3d.com/ScriptReference/Object-operator_eq.html

Unity 對象在銷毀后將等於 null,但您仍然可以訪問其部分屬性。

您可以使用以下條件來檢查 Unity 對象是否完全為空。

(object)item == null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM