在这个类签名中T表示什么,如何实例化这个类

本文关键字:实例化 什么 表示 | 更新日期: 2023-09-27 18:17:46

当我的教授在度假时,我正在为他看一些代码,我遇到了这个未引用的类。有人能解释一下T代表什么,以及如何实例化这样的类吗?

public class RowToObject<T> where T : new()

在这个类签名中T表示什么,如何实例化这个类

T是任何具有公共无参数构造函数的对象,受以下约束:

where T : new()

要实例化它,为T提供一个具有公共无参数构造函数的类型:

var myRowToObject = new RowToObject<AnotherClass>();

至于它打算如何在你的代码库中使用,我不知道!: -)

RowToObject是一个泛型类,它接受一个type - in参数。此类型由T标识,约束(T: new())强制要求此类型必须有默认构造函数。

更多约束

这是Generic类。它采用尖括号内的类型,如RowToObject<SomeType>Where位就像一个过滤器,规定传入的类型必须有一个没有参数的公共构造函数。

谁能解释一下T代表什么,可能的话怎么做像这样实例化一个类?

T is Type

RowToObject<int> Example = new RowToObject<int>();

你真的应该看看你的课堂笔记来理解我的答案。

这是如何声明一个类是否将是泛型的。虽然T将接受任何类,但不要被Type类所迷惑,语法使用T

是有原因的(我无法解释)。

假设RowToObject有一个无参数构造函数,您可以像这样实例化它:

new RowToObject<object>();

T意味着你可以把任何类放在那里,满足System.Object所具有的"具有无参数构造函数"的标准。

尽管可能需要一个不同的对象。这取决于如何使用类。