当前位置:  开发笔记 > 编程语言 > 正文

为什么有Nullable <T>结构和Nullable类?

如何解决《为什么有Nullable<T>结构和Nullable类?》经验,为你挑选了1个好方法。

有一个Nullable结构,还有另一个静态Nullable类,有三个静态方法.

我的问题是,为什么静态Nullable类中的这些静态方法不能进入Nullablestruct?在两种不同类型中定义它们的原因是什么?

还有一个INullable界面.它做什么?



1> TheBigSot..:

    Generics的标准做法是使用与泛型类相同的实用程序方法使用与泛型类相同的类.因为当你使用泛型类时,你不能在类型声明中推断出泛型,你最终会得到更多的字符.看看静态方法放在泛型类中会是怎样的:

    Nullable.Compare(x, Y);
    var n = new Tuple(10, "Text");
    

    VS

    Nullable.Compare(x, Y);
    var n = Tuple.Create(10, "Text");
    

    我把Tuple作为另一个例子.

    接口和基类在泛型中非常有用,并且因为Nullable <>是struct而struct不能有基类,所以我们留下了接口.现在可以使用它.

    {
        int? a = 10;
        long? b = 10L;
    
        Process(a);
        Process(b);
    }
    
    private static void Process(INullable value)
    {
        if (value.IsNull)
        {
            // Process for null .. 
        }
        else
        {
            // Process for value .. 
        }
    }
    

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有