gpt4 book ai didi

c# - 为什么会有 Nullable 结构和 Nullable 类?

转载 作者:太空狗 更新时间:2023-10-30 00:38:22 25 4
gpt4 key购买 nike

有一个Nullable<T>结构,还有另一个静态 Nullable具有三个静态方法的类。

我的问题是,为什么static Nullable中的这些静态方法不能?类进入Nullable<T>结构?将它们定义为两种不同类型的原因是什么?

还有一个 INullable还有界面。它有什么作用?

最佳答案

  1. 使用与泛型类同名的类以及与泛型类相关的实用方法是泛型的标准做法。因为当你使用泛型类时,你无法在类型声明中推断出泛型,你最终会得到更多的字符。看看如果将静态方法放在泛型类中会怎样:

    Nullable<int?>.Compare(x, Y);
    var n = new Tuple<int,string>(10, "Text");

    对比

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

    我把元组作为另一个例子。

  2. 接口(interface)和基类在泛型中非常有用,因为 Nullable<> 是结构体,而结构体不能有基类,所以我们只剩下接口(interface)了。下面是它的一种可能用法。

    {
    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 ..
    }
    }

关于c# - 为什么会有 Nullable<T> 结构和 Nullable 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41756012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com