我有一个bool
这样的变量:
bool myBool = true;
如果我写if (myBool == null)
,我会收到以下警告:
表达式的结果始终为“false”,因为“bool”类型的值永远不会等于“bool?”类型的“null”。
这对我来说很清楚,因为检查不可为空的变量是否为空是没有意义的。Visual Studio 注意到这一点并将其标记为警告。
现在我有一个string
,默认情况下可以为空,据我所知。
string
为什么我可以在Visual Studio 没有注意到的情况下将空条件运算符应用于硬编码?我在想这样的事情:
"This is a string"?.AnyStringMethod();
Visual Studio 不应该注意到这string
根本不是 null 吗?