术语:您如何描述 Nullable的类型 T?

发布于 2024-11-16 17:03:44 字数 848 浏览 1 评论 0原文

当谈论泛型类型时,FooT 被称为泛型参数类型参数 .NET System.Type 文档中的泛型类型 Foo

现在,当我处理诸如 int?Nullable 之类的类型时,如何引用泛型参数(即 intBar 在我的示例中)在描述类型时?

我将其称为可空类型的基类型,但是在描述类层次结构时,基类型通常用于引用父类......所以我不觉得在这里谈论基本类型是正确的。使用可空类型的术语泛型参数让我感觉很笼统。

那么你如何谈论这些类型呢?

更具体地说,您将如何命名此扩展方法:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝梦月影 2024-11-23 17:03:44

从规范:

可空类型可以代表所有
底层类型的值加上
额外的空值。可空类型
写成T?,其中T是
底层类型

编辑:

参考:
C# 4 规范部分 4.1.10 可空类型

from the spec:

A nullable type can represent all
values of its underlying type plus an
additional null value. A nullable type
is written T?, where T is the
underlying type

Edit:

reference:
C# 4 spec section 4.1.10 Nullable types

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文