2010-01-13 85 views
1

我有一個問題Null值檢查

attrval[5] = WrmService.WindowsAgent.AgentVersion; 

從上面如果attrval [5]爲空或沒有得到任何值或我希望分配attrval [5]至值比數值以外的任何字符串「0.0 .0.0',否則我會 顯示即將到來的數字值。我必須在這裏執行哪些編碼

最後在用戶界面有兩個可能的機會,一個是值爲0.0.0.0或數字值。如果是0.0.0.0,我會從資源文件 顯示爲「未知」字符串或我將ListView中顯示的數值

我在做一個像下面

if(Data.AgentVersion ==null) 
         SubItems.Add(ResourcePolicySystemsLVI.m_nullVersion); 
else 
        SubItems.Add(((IResourcePolicy)Data).AgentVersion); 

顯示的是這個足夠手段如果(Data.AgentVersion == null)如果(Data.AgentVersion == 0.0.0.0)0.0.0.0等於空或我想要更改

回答

1

null比較並且與表示無值的某個值並不是一回事。如果這就是你要問的,那麼你必須分別檢查兩者。

但是我不知道WrmService是否足夠說空值是否有可能。

0

要回答您的基本問題0.0.0.0不等於null

您的測試應該是:

if (Data.AgentVersion == null || Data.AgentVersion.Equals("0.0.0.0") 

假設Data.AgentVersion是一個字符串。

您可能想要沿着與String.IsNullOrEmpty相同的路線執行某些操作,您可以在需要執行此測試時調用該操作。

+0

這將是答案第二,但第一個爲attrval做什麼[5] – peter

+0

@peter - 我不知道我跟着。 @羅伯特的答案似乎很好。如果沒有,那麼你可以用更多的信息更新你的問題。 – ChrisF

0

你可以試試這個檢查null或多項:

attrval[5] = (WrmService.WindowsAgent.AgentVersion == null || Microsoft.VisualBasic.Information.IsNumeric(WrmService.WindowsAgent.AgentVersion)) ? "0.0.0.0" : WrmService.WindowsAgent.AgentVersion;

或者,如果它只是一個空檢查你可以試試這個:

attrval[5] = WrmService.WindowsAgent.AgentVersion ?? "0.0.0.0";

+0

這裏我想要的是,我只需要兩個輸出意味着它可以是0.0.0.0或它可以是數字值 – peter

+0

1.1.0.1或0.1.2.3是什麼這些可接受的值 – Robert

+0

Microsoft.VisualBasic.Information這對於我想要哪個命名空間使用 – peter