当前位置: 首页 > 知识库问答 >
问题:

为什么Nullable作为泛型约束[duplicate]的引用类型不匹配

漆雕升
2023-03-14

可能重复:
是否可能将可空类型作为泛型参数

我遇到了一个关于泛型类型约束的非常奇怪的事情。我有一门课是这样的:

public SomeClass<T> where T:class
{
}

但是,我发现我不能像预期的那样使用null类型:

new SomeClass<int?>();

我得到一个错误,int?必须是引用类型。Nullable真的只是一个语法糖的结构,使其看起来像引用类型吗?

共有1个答案

闽承望
2023-03-14

Nullable

Nullable

 类似资料:
  • 泛型的类型约束 swapTwoValues(_:_:)函数和Stack类型可以用于任意类型. 但是, 有时在用于泛型函数的类型和泛型类型上, 强制其遵循特定的类型约束很有用. 类型约束指出一个类型形式参数必须继承自特定类, 或者遵循一个特定的协议、组合协议. 例如, Swift的Dictionary类型在可以用于字典中键的类型上设置了一个限制. 如字典中描述的一样,字典键的类型必须是可哈希的. 也

  • 在研究泛型时,我注意到泛型方法和泛型类型(类或接口)在类型引入语法上的一个差异使我感到困惑。 泛型方法的语法为 文件上说 为了彼此保持一致,我希望方法语法为 ,或者类型语法(for class)为,但事实显然并非如此。 为什么一个要介绍在前,另一个要介绍在后? 我主要以的形式使用泛型,并认为可能看起来很奇怪,但这是一个主观的参数,此外对于方法也是这样。您可以调用,类似于 在寻找技术解释时,我想在指

  • 本文向大家介绍TypeScript 类型参数作为约束,包括了TypeScript 类型参数作为约束的使用技巧和注意事项,需要的朋友参考一下 示例 使用TypeScript 1.8,类型参数约束可以从同一类型参数列表中引用类型参数。以前这是一个错误。            

  • 这是SWIFT中的有效协议声明: 但这不是: 错误消息为: 协议“proto2”只能用作泛型约束,因为它具有自身或关联的类型要求 因此,当使用作为函数的返回类型时,Swift并不认为这是所定义协议的约束,因此可以使用协议本身作为函数的返回类型。但是当使用作为函数的参数类型时,其行为是完全不同的。 我想知道为什么会有这样的差别?

  • 问题内容: 我正在使用泛型编写某些东西,令我惊讶的是,我发现这行不通: 那我不能实例化泛型吗?没有任何方法可以做到这一点吗? 问题答案: 是的,这真是令人讨厌。 我使用的解决方法是强制客户端在构造新类时传递类-即 然后您可以使用。

  • 所以我有这样的课: 现在我正在寻找一个类型约束,它允许我使用所有可以是的类型参数。这意味着所有引用类型,以及所有()类型: 应该是可能的。 使用作为类型约束只允许我使用引用类型。 附加信息:我正在编写一个pipes and filters应用程序,并希望使用引用作为传递到管道中的最后一项,这样每个过滤器都可以很好地关闭,进行清理,等等。。。