[英]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.