类型为<T>的类,其类型为<T>的可为空

戴维

我需要制作一个可以容纳以下类型的值的类:int?, decimal?, date, bool? string

我希望能够做这样的事情:

var x = new MyClass<int?>()  
x.Value = null;
x.value = 99;         

// or

var y = new MyClass<bool?>();
y.Value = null;
y.Value = true

// and so on

我一直试图按照以下方式创建类型T的类:

public class TestClass<T>
{             
    public T? Value{ get; set; }
}

我想使用Value接受任何允许的类型,但是我不能使T为可为空。错误是:

Sysytem.Nullable只能是不可为空的值类型

无论如何,我正在努力实现什么目标?

gzaxx

试试这个:

public class TestClass<T> where T : struct
{             
    public T? Value{ get; set; }
}

类不能为空,因为类是引用类型。您必须向通用类添加约束以仅允许结构(可以为空)。

string是引用类型,在string这种情况下您的课程无法使用它,因为它不能为空。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#8可为空和不可为空的引用类型-仅当输入为可为空时才可为可输出

来自分类Dev

Typelite:如何通过T4转换将可为空的C#类型设置为可为空的Typescript类型?

来自分类Dev

调用T为类型的通用方法

来自分类Dev

遍历类型为Iterator <T>的对象

来自分类Dev

将类型为“ t”的运算符转换为类型为“ a-> t”的运算符

来自分类Dev

如何检查T是否为聚合类型?

来自分类Dev

类型“ MyObject”必须是不可为空的值类型,以便在通用类型或方法“ Nullable <T>”中将其用作参数“ T”

来自分类Dev

<T>无法解析为类型?

来自分类Dev

异步方法的返回类型必须为空,Task或Task <T>

来自分类Dev

类型不匹配:推断的类型为T但kotlin。

来自分类Dev

将可为空的类型转换为其不可为空的类型?

来自分类Dev

原始类型上可为空的模板类

来自分类Dev

当T为null时,如何声明参数类型为T的类?

来自分类Dev

推断类型为可为空的集合,但预期为不可为空的集合

来自分类Dev

可为空的通用引用类型

来自分类Dev

类型参数“ T”必须为类类型

来自分类Dev

是否可以创建类型为typeof(T).getElementOf()的数组,并在<T>的通用方法中对其进行初始化?

来自分类Dev

类型为“ const wchar_t”的C ++参数*与类型为“ wchar_t”的参数不兼容

来自分类Dev

从可为空的类型中提取不可为空的类型定义

来自分类Dev

哪些Unity类型可为空?

来自分类Dev

通用类型的托管记录产生编译时错误“类型参数'T'必须为非空值类型”

来自分类Dev

C#8可为空和不可为空的引用类型-仅当输入为可为空时才可为可输出

来自分类Dev

是否可以编写genericFunction <'T>,其中将'T约束为'T2 *'T3类型的元组?

来自分类Dev

T?,C#9中可为空的类型参数

来自分类Dev

当用作通用类型时,可为空的枚举类型不能分配为null

来自分类Dev

PHP可为空的类型声明

来自分类Dev

遍历类型为Iterator <T>的对象

来自分类Dev

带有自定义元素的 D3:类型错误:t 为空

来自分类Dev

检查属性是类型还是可为空类型

Related 相关文章

  1. 1

    C#8可为空和不可为空的引用类型-仅当输入为可为空时才可为可输出

  2. 2

    Typelite:如何通过T4转换将可为空的C#类型设置为可为空的Typescript类型?

  3. 3

    调用T为类型的通用方法

  4. 4

    遍历类型为Iterator <T>的对象

  5. 5

    将类型为“ t”的运算符转换为类型为“ a-> t”的运算符

  6. 6

    如何检查T是否为聚合类型?

  7. 7

    类型“ MyObject”必须是不可为空的值类型,以便在通用类型或方法“ Nullable <T>”中将其用作参数“ T”

  8. 8

    <T>无法解析为类型?

  9. 9

    异步方法的返回类型必须为空,Task或Task <T>

  10. 10

    类型不匹配:推断的类型为T但kotlin。

  11. 11

    将可为空的类型转换为其不可为空的类型?

  12. 12

    原始类型上可为空的模板类

  13. 13

    当T为null时,如何声明参数类型为T的类?

  14. 14

    推断类型为可为空的集合,但预期为不可为空的集合

  15. 15

    可为空的通用引用类型

  16. 16

    类型参数“ T”必须为类类型

  17. 17

    是否可以创建类型为typeof(T).getElementOf()的数组,并在<T>的通用方法中对其进行初始化?

  18. 18

    类型为“ const wchar_t”的C ++参数*与类型为“ wchar_t”的参数不兼容

  19. 19

    从可为空的类型中提取不可为空的类型定义

  20. 20

    哪些Unity类型可为空?

  21. 21

    通用类型的托管记录产生编译时错误“类型参数'T'必须为非空值类型”

  22. 22

    C#8可为空和不可为空的引用类型-仅当输入为可为空时才可为可输出

  23. 23

    是否可以编写genericFunction <'T>,其中将'T约束为'T2 *'T3类型的元组?

  24. 24

    T?,C#9中可为空的类型参数

  25. 25

    当用作通用类型时,可为空的枚举类型不能分配为null

  26. 26

    PHP可为空的类型声明

  27. 27

    遍历类型为Iterator <T>的对象

  28. 28

    带有自定义元素的 D3:类型错误:t 为空

  29. 29

    检查属性是类型还是可为空类型

热门标签

归档