有一个Nullable< T>. struct还有另一个带有三个静态方法的静态Nullable类.
我的问题是,为什么静态Nullable类中的这些静态方法不能进入Nullable< T>结构?在两种不同类型中定义它们的原因是什么?
并且还有一个INullable接口.它做什么?
解决方法:
> Generics的标准做法是使用与泛型类相同的实用程序方法,使用与泛型类相同的类.因为当你使用泛型类时,你不能在类型声明中推断出泛型,你最终会得到更多的字符.
看看静态方法放在泛型类中会是怎样的:
Nullable<int?>.Compare(x, Y);
var n = new Tuple<int,string>(10, "Text");
VS
Nullable.Compare(x, Y);
var n = Tuple.Create(10, "Text");
我把Tuple作为另一个例子.
>接口和基类在泛型中非常有用,并且因为Nullable<>是struct和structs不能有基类,我们留下了接口.现在可以使用它.
{
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 ..
}
}