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

类型“MyObject”必须是不可为Null的值类型,才能将其用作泛型类型或方法“nullable”中的参数“T”

苗康平
2023-03-14

我正在使用. net框架4.5

我得到以下错误

错误CS0453类型“MyObject”必须是不可为空的值类型,才能将其用作泛型类型或方法“Nullable”中的参数“T”

  public async Task<Nullable<MyObject>> MyMethod(string myParamter)
    {}

我也试过

  public async Task<MyObject?> MyMethod(string myParamter)
    {}

如果我将其设置为可为null,那么为什么我会在方法名称下面得到带有此错误消息的红线

stackoverflow的答案很简单,将返回类型设为null,但对我来说Visual studio不允许这样做。

共有1个答案

西门品
2023-03-14

由于MyObject是一个对象,并且根据定义,对象可以为null,因此没有必要使用可为null的

<代码>可空

 类似资料:
  • 我使用的是Azure.data.tables nuget包的12.0.0-beta.6。当我尝试调用TableClient.GetQueryAsync时,它会给出错误: “类型”T“必须是引用类型,才能将其用作泛型类型或方法”TableClient.GetEntityAsync(string,string,IEnumerable,CancellationToken)“中的参数”T“。” 我看不出我

  • 问题内容: 问题摘要: 我想将具有类型参数(例如)的类作为类型参数传递给泛型方法。 假设我有一个方法: 当然,此方法对于任何类型的类都可以正常使用。我可以这样调用该方法,例如: 问题: 我发现我不能这样做: 从句法上讲,这显然是无效的。但是,我不确定如何实现这样的目标。我当然可以通过,但是泛型类型的添加使其在语法上不再有效,并且我想不出解决方法。 唯一的直接解决方案是这样的事情(看起来很愚蠢):

  • 问题内容: 您认为可以创建类似的东西吗? 问题答案: 是的你可以。 用法示例:

  • 我想使用泛型类作为另一个泛型类的类型参数。 起初,我对类的定义是这样的: 然后我的需求发生了变化,我不得不为我的R类型使用包装器/持有者类 到目前为止,我的尝试:(给出编译时错误:

  • 问题总结:我想传递一个带有类型参数(如

  • 我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类