c# - "where T : class, new()"是什么意思?

标签 c# generics type-constraints

能否请您向我解释一下 where T : class, new() 在以下代码行中的含义?

void Add<T>(T item) where T : class, new();

最佳答案

这是对通用参数 T 的约束。它必须是一个(引用类型)并且必须有一个公共(public)的无参数默认构造函数。

这意味着 T 不能是 intfloatdoubleDateTime 或任何其他 struct(值类型)。

它可以是字符串,或任何其他自定义引用类型,只要它具有默认或无参数构造函数即可。

关于c# - "where T : class, new()"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4737970/

相关文章:

c# - PropertyGrid 中 boolean 属性的自定义编辑器 (C#)

c# - Function 还是 async 可以细化吗?

c# - 使用哪个通用集合?

java - Java中如何保证只能对 `Comparable`个元素进行排序?

generics - 在 F# 中,两种泛型类型约束表示有什么区别

c# - 如何用空格字符替换无数字字符?

c# - 使用 NSubstitute 进行依赖注入(inject)

c# - 为什么泛型结构不能具有在 C# 中指定泛型类型的静态成员?

C# 集合类型约束泛型

c# - 如何在另一个泛型基类上添加 C# 泛型类型约束?