c# – ‘is’运算符不能应用于静态类型的操作数

在这种情况下,这个错误意味着什么?

if (value == null)
    return "";

if (value is Nullable && ((INullable)value).IsNull) //error on this line
    return "";

if (value is DateTime)
{
    if (((DateTime)value).TimeOfDay.TotalSeconds == 0)
        return ((DateTime)value).ToString ("yyyy-MM-dd");
    return ((DateTime)value).ToString ("yyyy-MM-dd HH:mm:ss");
}

我搜索但没有得到任何关于此错误的信息.我在Mono(2.10.8.1)上尝试这个.这是一个实际用于Windows的项目,但是当我尝试在Monodevelop中编译它时,我收到了这个错误.

解决方法:

问题出在这里:

if (value is Nullable

它认为你在谈论static class System.Nullable而不是System.Nullable<T>结构.

也许你的意思是:

if (value is INullable ...)

注意,如果value是编译时类型对象,那么它永远不会是Nullable< T>,因为装箱空值会给出空引用,而装箱非空值会给出基础类型的盒装值.

如果您认为还有其他事情需要实现,请说明您要做的事情.

上一篇:HSV 颜色空间研究及映射


下一篇:吴裕雄 python深度学习与实践(8)