2010-01-13 84 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