【问题标题】:What does angle brackets do on class names in C#?尖括号对 C# 中的类名有什么作用?
【发布时间】:2014-09-13 18:36:27
【问题描述】:
例如,我知道您可以如何使用 List<T> 并决定该集合所持有的内容。这就是 T 的用武之地。但我不确定我是否完全理解括号。
如果我创建一个类...
class MyClass<int> { }
或者我可以使用 T 或 object 或 string 或其他什么来代替 int。这意味着什么?它会自动变成一个集合吗?
【问题讨论】:
-
这是一个泛型类,与集合无关。检查this,如果您有具体问题,请回来。
标签:
c#
generics
collections
【解决方案1】:
泛型类允许类成员使用类型参数。它们的定义方式与泛型方法相同,只是在类名后添加类型参数。
class Point<T>
{
public T x, y;
}
为了从泛型类中实例化一个对象,使用标准符号,但在两个类名之后都指定了类型参数。请注意,与泛型方法相比,泛型类必须始终使用显式指定的类型参数进行实例化。
Point<short> p = new Point<short>();
参考:http://www.pvtuts.com/csharp/csharp-generics
【解决方案2】:
T 表示类型。如果您使用“MyClass”,MyClass 是一个通用类。更多信息here