2014-02-20 44 views
0

我很新C#(我來自Java),我有以下疑問。如何檢查一個字段是否爲空?

在上我的工作我的應用程序中發現的代碼類似的東西:

if (!String.IsNullOrEmpty(u.nome)) 

此代碼只是檢查U對象的諾姆字段是不是空\空字符串。

好吧,這對我來說很清楚,但是如果字段不是字符串,而是一個正常的int,我該怎麼辦?

+0

它就像在Java中一樣。 if(yourObject!= null) – Heslacher

+0

什麼Heslacher說,除了'int'不能爲空,就像那麼簡單:)在任何情況下,'string.IsNullOrEmpty'是一個快捷方式,一種意圖顯示的方式來檢查爲一個字符串的「空白」。它實際上等同於編寫'u.nome == null || u.nome == string.Empty'。 – Luaan

+0

@Luaan,那就是爲什麼我寫了yourObject ;-) – Heslacher

回答

4

int?是一個可爲空的整數。只是空進行比較

if (u.NullableInt != null) 

或使用Nullable<T>.HasValue屬性(它的品味的問題,但我發現這個選項更易讀)

if (u.NullableInt.HasValue) 

注意:如果你問int那麼其在value type和它不能有null的值。整數的缺省值是0(但不能說它是否被賦值給變量,這就是爲什麼可以引入空類型)。

0

您可以使用幾種不同類型,但最常見的是:

if(someVar != null) 

而且如果你從一個數據庫的到來,這是特別有幫助

if(someVar != DBNull.Value) 
0

int是一個非-nullable值類型,所以它不能爲空。但空值類型(例如,int?bool?)和引用類型(任何級別),你可以簡單地用空

if(myObj != null) {....} 
0

你可以在檢查使用此機制

static bool CheckIfNullOrDefault<T>(T value) 
{ 
    return object.Equals(value, default(T)); 
} 

double d = 0; 
CheckIfNullOrDefault(d); // true 
MyClass c = null; 
CheckIfNullOrDefault(c); // true 

這裏上面的代碼你發現T是引用類型。在這裏它與null進行比較,如果它有一些值說布爾值是假的,對於double Default(T)是0d,它會得到驗證。