2013-01-24 19 views
0

我有以下測試:如何測試空字符串會話對象

if(Session["mykey"] != string.Empty) 
{...} 

在VS.NET 2010的監視窗口,會話的值「的myKey」]是「」。然而,我仍然進入條件。我是否需要其他測試?

---編輯--- 上述運行後,我通過指定string.Empty重置對象。

+0

它是空?你有沒有嘗試過string.IsNullOrEmpty? –

+0

+1問題結構良好,客觀! – Ghaleon

+0

重設值不要忘記使用 Session [「mykey」]'.ToString()'= string.empty; – Ghaleon

回答

4

當然,因爲你與Sessions不是它textobject比較。 不喜歡這樣:

if(Session["mykey"].ToString() != string.Empty) 
{...} 

別的路可走的是:

if(Session["mykey"] != null) 
{...} 
+0

檢查我在OP中添加的編輯。你所擁有的第一個條件是錯誤的,這是我所期望的。但是,空檢查是正確的。這是真的,因爲這個對象的值是「」?我應該最初分配空字符串,只檢查並不是空的? – 4thSpace

+0

當這些'ifs'的結果成立時,它意味着它是空的,它沒有值,或者你沒有爲它設置一個值,或者它的'timeout'已過期...你可以做這兩個例子中的任何一個這將工作..我這樣做=) – Ghaleon

4

試試這個

if(!string.InNullOrEmpty(Session["mykey"].ToString())) 
{ 
    // some code 
} 
+0

+1是的。我編輯了我的帖子。 –

+0

如果密鑰爲空,不會引發異常嗎? – 4thSpace

+0

你可以在此代碼之前檢查它 –