为什么要检查Struct是否等于null?

时间:2018-08-27 14:17:15

标签: c# unity3d struct null compiler-warnings

Unity具有结构Color。默认值为Color.white。因此,要检查它是否为默认值,可以使用myColor == default(Color)myColor == Color.white

但是,我遇到了一些检查myColor == null是否存在的代码。代码经过编译,Visual Studio给出了将其转换为false的建议。我认为这是因为Color不能为null。这适用于我见过的所有Unity结构,例如Vectors。

如果我在C#中使用常规结构,它会给我建议,但也无法编译。

Color myColor = new Color();
bool defaultColor = myColor == null; //Compiles

MyStruct myStruct = new MyStruct();
bool defaultStruct = myStruct == null; //Does not compile

为什么Unity Structs允许进行空检查?为什么会编译?

0 个答案:

没有答案