空值检查

时间:2010-01-13 10:12:51

标签: c# .net

我有一个问题

attrval[5] = WrmService.WindowsAgent.AgentVersion;

从上面如果attrval [5]为null或者没有得到任何值或除数值之外的任何字符串我想将attrval [5]分配给值'0.0.0.0'否则我会 显示即将到来的数值。我必须在这里实现什么编码

最后在UI有两种可能的机会,一个值是0.0.0.0或数值。如果是0.0.0.0,我将从资源文件中显示“未知”字符串 或者我将在LISTVIEW

中显示数值

我正在做那个如下所示

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

这是否足够意味着0.0.0.0等于null或我想将if(Data.AgentVersion == null)更改为if(Data.AgentVersion == 0.0.0.0)

3 个答案:

答案 0 :(得分:1)

null进行比较并与某个代表无值的值进行比较并不是一回事。如果这就是你所要求的,那么你必须分别检查两者。

但是,我不太了解WrmService是否可以说空值。

答案 1 :(得分:0)

要回答您的基本问题,0.0.0.0不等同于null

您的测试应该是:

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

假设Data.AgentVersion是一个字符串。

您可能希望实现与String.IsNullOrEmpty相同的行,您可以在需要执行此测试的地方调用它。

答案 2 :(得分:0)

您可以尝试检查空值或数字:

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";