程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#裡判斷空字符串的幾種方法

C#裡判斷空字符串的幾種方法

編輯:關於C#
 

通常我們判斷空字符串,在c#會使用 if (x = "")的方法,首先要明確在c#中空字符串可以是"",String.Empty和null這三種,三者的定義如下,

1."",是分配一個長度為空的內存空間;
2.String.Empty,不分配內存空間,一般用string.Empty來定義。(另有一說是分配有內存空間的)
3.null,沒有分配內存空間;

一般來說1和2基本上是可以互換使用,例如:

String temp="";
String temp1=string.Empty;

在使用IF語句作判斷的時候,
if (temp == string.Empty)
{
}

if (temp1 == "")
{
}
if的語句都成立的。

從網上的結論來看,""與string.Empty在用法與性能上基本沒區別。string.Empty是在語法級別對""的優化。

同樣按網上的說法,判斷空字符串可以用以下三種方法,按性能從高到低的順序為:

str.Length==0 、str==String.Empty 、str == ""

繼續研究下去:

那現在需要區分string.Empty與null在判斷的時候是否一樣。

如果string str=null後使用str.length == 0 將會報錯,對於null通常使用 if (str == null) 這樣的方法來作判斷。

SO,str.Length==0 、str==String.Empty 、str == ""這三種方法,對於null的空字符串,似乎是無效的。

c#提供了有一個函數,string.IsNullOrEmpty(),如果 string為空或空字符串 ("")、null等,則為 true;否則為 false。

該函數可以同時檢測,"",string.Empty,null等情況,

微軟官方說法:

IsNullOrEmpty 是一種簡便方法,它使您能夠同時測試 String 是否為空或其值是否為 Empty。 它與下列代碼等效:

result = s Is Nothing OrElse s = String.Empty

1、result = s == null || s == String.Empty;

2、result = s == nullptr || s == String::Empty;

如果你平時還經常使用if (str == "")的判斷寫法,則需要改改了。

注:本文章從網上收集整理,部分內容例如性能之說未經測試證實,但本文結論,使用string.IsNullOrEmpty()來檢測空字符串,則是成立的。
使用例子:
01.if (String.IsNullOrEmpty(str))

02.{ 03. return "is null or empty"; 04.}

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved