繁体   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