术语:您如何描述 Nullable的类型 T?
当谈论泛型类型时,Foo
、T
被称为泛型参数或类型参数 .NET System.Type
文档中的泛型类型 Foo
。
现在,当我处理诸如 int?
或 Nullable
之类的类型时,如何引用泛型参数(即 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
时,此方法返回 typeof(T)
作为结果。
When talking about a generic type, Foo<T>
, T
is called the generic argument or type argument of generic type Foo
in the .NET System.Type
documentation.
Now, when I am dealing with a type such as int?
or Nullable<Bar>
, how do I refer to the generic argument (i.e. int
or Bar
in my example) when describing the type?
I'd call it the base type of the nullable type, but base type is usually used to refer to the parent class, when describing a class hierarchy... so I don't feel it is right to be talking about a base type here. And using the terminology the generic argument of the nullable type makes me feel to general.
So how do you speak about these types?
And more specifically, how would you name this extension method:
public static System.Type GetXxxType(this System.Type type)
{
if ((type.IsGenericType) &&
(type.GetGenericTypeDefinition () == typeof (System.Nullable<>)))
{
return type.GetGenericArguments ()[0];
}
else
{
return null;
}
}
When passed a Nullable<T>
this method returns typeof(T)
as a result.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从规范:
编辑:
参考:
C# 4 规范部分 4.1.10 可空类型
from the spec:
Edit:
reference:
C# 4 spec section 4.1.10 Nullable types