在谈论泛型类型时,Foo<T>
,T
被称为泛型类型{{1}的泛型参数或类型参数在.NET Foo
文档中。
现在,当我处理System.Type
或int?
这样的类型时,如何在我的示例中引用泛型参数(即Nullable<Bar>
或int
)在描述类型时?
我将其称为可空类型的基类型,但基类型通常用于在描述类层次结构时引用父类。所以我觉得在这里讨论一种基本类型并不合适。使用术语可空类型的泛型参数让我觉得一般。
那你怎么说这些类型?
更具体地说,您如何命名此扩展方法:
Bar
传递public static System.Type GetXxxType(this System.Type type)
{
if ((type.IsGenericType) &&
(type.GetGenericTypeDefinition () == typeof (System.Nullable<>)))
{
return type.GetGenericArguments ()[0];
}
else
{
return null;
}
}
时,此方法会返回Nullable<T>
。
答案 0 :(得分:4)
来自规范:
可以为空的类型可以代表所有 其底层类型的值加上 额外的空值。可以为空的类型 是T?,其中T是 基础类型
编辑:
参考: C#4规范部分 4.1.10可空类型