对象类型空值检查

时间:2014-07-17 09:48:12

标签: c# asp.net null

我使用波纹管代码从ListviewDataItem控件获取日期值

object HyperWalletPayoutDate = 
    DataBinder.Eval(dataItem.DataItem, "HyperWalletPayoutDate"); 

有时HyperWalletPayoutDate值为null。我怎样才能检查这个空值?

我试过这种方式但没有工作

if (HyperWalletPayoutDate.Any() == null || HyperWalletPayoutDate == "" 
    || HyperWalletPayoutDate ==null)

请给我建议解决这个问题。提前谢谢..

3 个答案:

答案 0 :(得分:1)

您的代码存在的问题是第一个条件

if (HyperWalletPayoutDate.Any() == null || ...

已经需要一个实例。您必须首先对null执行HyperWalletPayoutDate检查:

if (HyperWalletPayoutDate == null || HyperWalletPayoutDate == "" || HyperWalletPayoutDate.Any() == null)

HyperWalletPayoutDatenull时,其他条件不会被评估,因此不再抛出任何异常。

答案 1 :(得分:1)

您看到的行为(值为{}而不是null)是Boxing的结果。假设您期望string值,则应使用对该特定类型的正确检查,即

if (String.IsNullOrEmpty((string)HyperWalletPayoutDate)) {
   ...
}

这将在内部取消装箱,并确定它是否有值。

答案 2 :(得分:0)

我认为它的工作原理如下:

    if(HyperWallenteretPayoutDate.Any(d => d)){ 
        //it does not equal null 
    }