我很新C#(我來自Java),我有以下疑問。如何檢查一個字段是否爲空?
在上我的工作我的應用程序中發現的代碼類似的東西:
if (!String.IsNullOrEmpty(u.nome))
此代碼只是檢查U對象的諾姆字段是不是空\空字符串。
好吧,這對我來說很清楚,但是如果字段不是字符串,而是一個正常的int,我該怎麼辦?
我很新C#(我來自Java),我有以下疑問。如何檢查一個字段是否爲空?
在上我的工作我的應用程序中發現的代碼類似的東西:
if (!String.IsNullOrEmpty(u.nome))
此代碼只是檢查U對象的諾姆字段是不是空\空字符串。
好吧,這對我來說很清楚,但是如果字段不是字符串,而是一個正常的int,我該怎麼辦?
int?
是一個可爲空的整數。只是空進行比較
if (u.NullableInt != null)
或使用Nullable<T>.HasValue
屬性(它的品味的問題,但我發現這個選項更易讀)
if (u.NullableInt.HasValue)
注意:如果你問int
那麼其在value type和它不能有null
的值。整數的缺省值是0
(但不能說它是否被賦值給變量,這就是爲什麼可以引入空類型)。
您可以使用幾種不同類型,但最常見的是:
if(someVar != null)
而且如果你從一個數據庫的到來,這是特別有幫助
if(someVar != DBNull.Value)
int
是一個非-nullable值類型,所以它不能爲空。但空值類型(例如,int?
,bool?
)和引用類型(任何級別),你可以簡單地用空
if(myObj != null) {....}
比較,如果是如int值類型,它將有一個初始化值,即使你不要初始化它。對於int是0
對於參考類型,我認爲你可以檢查像
if(someVar !=null)
你可以看到這個http://msdn.microsoft.com/en-us/library/4d43ts61(v=vs.90).aspx
你可以在檢查使用此機制
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,它會得到驗證。
它就像在Java中一樣。 if(yourObject!= null) – Heslacher
什麼Heslacher說,除了'int'不能爲空,就像那麼簡單:)在任何情況下,'string.IsNullOrEmpty'是一個快捷方式,一種意圖顯示的方式來檢查爲一個字符串的「空白」。它實際上等同於編寫'u.nome == null || u.nome == string.Empty'。 – Luaan
@Luaan,那就是爲什麼我寫了yourObject ;-) – Heslacher