有一个Nullable
结构,还有另一个静态Nullable
类,有三个静态方法.
我的问题是,为什么静态Nullable
类中的这些静态方法不能进入Nullable
struct?在两种不同类型中定义它们的原因是什么?
还有一个INullable
界面.它做什么?
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 .. } }