T在这个类签名中代表什么?我如何实例化这个类?

时间:2011-12-14 17:08:50

标签: c#

我正在度假时看着我教授的一些代码,我遇到了这个没有参考的课程。有人可以解释一下T代表什么以及可能如何实例化这样的类吗?

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

5 个答案:

答案 0 :(得分:6)

T是公共无参数构造函数的约束条件:

where T : new()

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

var myRowToObject = new RowToObject<AnotherClass>();

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

答案 1 :(得分:4)

RowToObject是一个泛型类,它在参数中使用一个类型。此类型由T标识,约束(T:new())强制此类型必须具有默认构造函数。

More on constraints.

答案 2 :(得分:1)

这是Generic课程。它需要像RowToObject<SomeType>这样的角括号内的类型。 Where位就像一个过滤器,它说传入的类型必须有一个没有参数的公共构造函数。

答案 3 :(得分:1)

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

new RowToObject<object>();

T意味着您可以在其中放置任何满足System.Object具有“无参数构造函数”标准的类。

虽然可能需要不同的对象。这取决于课程的使用方式。

答案 4 :(得分:1)

  

有人可以解释一下T代表的内容以及可能的内容   实例化一个这样的类?

T 类型

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

你真的应该查看你的课堂笔记,以了解我的答案。

这是你如何声明一个类是否通用的方式。虽然 T 会接受任何类,但不要被 Type 类混淆,有一个原因(我无法解释)语法使用 T