String null vs ""
本文关键字:quot vs null String | 更新日期: 2023-09-27 18:27:25
好的,所以我正在将某人的代码从VB.Net转换为C#。我想知道一个字符串是否被设置为",这和它被设置为null是一样的吗?例如,以下代码:
string word = "";
bool boolValue = false;
if(string == null)
{
boolValue = true;
}
所以,这最终会将boolValue设置为true,还是将word设置为"或null是两件不同的事情?我的直觉告诉我这是不同的。"只是使它成为一个空字符串。
""
是一个空字符串。null
是不存在任何值。
.NET有许多实用程序方法可以帮助您检查不同的情况。您可以检出string.IsNullOrEmpty
和string.IsNullOrWhitespace
。
""
,那么它现在被分配为对象,并且您可以访问该对象(您可以获得该字符串的长度,在这种情况下为0)。
您的困惑可能源于VB在应用于字符串时对"Nothing"的模糊/不一致概念,这取决于是否使用了"="或"Is"运算符,如以下示例所示:
Dim s1 As String = ""
If s1 = Nothing Then MsgBox("= Nothing") 'true
If s1 Is Nothing Then MsgBox("Is Nothing") 'false
Dim s2 As String = Nothing
If s2 = Nothing Then MsgBox("= Nothing") 'true - both 'Nothing' and "" pass the "= Nothing" test!
If s2 Is Nothing Then MsgBox("Is Nothing") 'true
C#字符串没有歧义。