C#有is操作符if(MyObject is null)...

解决方案 »

  1.   

    MyObject==null和MyObject = null可用,没错
      

  2.   

    我一直是这么用的~~为什么你那里不可用?哈哈~~
    MyObject==null
    MyObject = null
      

  3.   

    请看编译结果:
    DateTime time1;
    if (time1 == null)
    {
    …………
    }
    (239): 运算符“==”无法应用于“System.DateTime”和“<null>”类型的操作数
    __________________________________________________________________
    time1 = null;
    (251): 无法将 NULL 转换成“System.DateTime”,因为它是一种数值类型
      

  4.   

    我大约明白了。
    DateTime是ValueType的派生类,对其使用null是无效的。null对其他不是ValueType派生的类是可以用的。
    但是,我要如何才能实现我要的目的呢?
    没人帮我的话,只好把分给自己了。
      

  5.   

    既然DataTime是值类型,那么它就不可能等于null。这样你的代码就没有意义了。
      

  6.   

    你这样写很没有道理阿~~~你为什么不给time1赋一个初始值?比如一个不可能的值~~呵呵~~~然后再判断不行?
      

  7.   

    如果不给初始值
    DateTime time1;
    if (time1 == System.DateTime.Now)
    {
    //
    }
    即使比较类型是正确的,还是会得到编译错误:
    使用了未赋值的局部变量