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允许进行空检查?为什么会编译?