2013-01-17 86 views
0

我能夠爲變量賦值象下面這樣:有沒有空處理字符串的方法在C#

if (Session["myVariable"] != null) 
{ 
    string variAble = Session["myVariable"].ToString(); 
} 

有哪些檢查對象是否爲空或不是,然後分配,如果它不是一個方法空值?

+1

'string.IsNullOrEmpty()' –

+0

但它不處理其他對象,如會話。如果您正在比較的對象是字符串,則可以使用。 – MonsterMMORPG

+0

爲什麼這種方法不適合你? –

回答

5

string variAble = Session["myVariable"] ?? "";

編輯稍微更穩健的形式,通過@hatchet的建議,被:

string variAble = (Session["myVariable"] ?? "").ToString();

+0

如果他需要做ToString,那麼'=(Session [「myVariable」] ??「」)。 ToString();' – hatchet

+0

如果'Session [「myVariable」]'不是字符串,這個工作嗎? – cadrell0

+0

謝謝讓我測試這個方法 – MonsterMMORPG

2

雖然這不是什麼新東西,你可以使用conditional operator潛在簡化此:

string variable = Session["myVariable"] != null ? Session["myVariable"].ToString() : "Fallback"; 
+0

謝謝,我知道。所以沒有其他的方法:( – MonsterMMORPG

+0

它被添加到C#4.0中嗎? –

+0

@HamletHakobyan沒有 - 一直在那裏 –

2

你可以wr迭代一個擴展方法,因爲那些仍然使用空對象。

public static class StringExtensions 
{ 
    public static String ToNullString(this object o) 
    { 
     return o == null ? "" : o.ToString(); 
    } 
} 

我會認爲這是一種欠佳,雖然 - 這將是混亂,誰就將成爲支持代碼後,甚至給你,幾個月下來的軌道。做空檢查可能會更好。

+0

但我想這不會是整個應用程序廣泛我錯了嗎?我可以爲整個asp.net網站定義一個擴展方法嗎? – MonsterMMORPG

+0

@ TheEvilPenguin,'StringExtensions'必須是一個靜態類 –

+0

@MonsterMMORPG只要包含類所在的命名空間,就可以在任何引用它的程序集的地方使用它 – TheEvilPenguin

相關問題