C# 什么';s泛型变量用于定义泛型
我当时正在看电视上的泛型 我们可以使用C# 什么';s泛型变量用于定义泛型,c#,.net,generics,C#,.net,Generics,我当时正在看电视上的泛型 我们可以使用T for type class Generics<T> { List<T> list = new List<T>(); public void fun(T no1, T no2) { list.Add(no1); } } 我很想知道为什么C允许我们对类型使用任何变量,以及这种方法的优点是什么它不仅仅是泛型类型的别名
T for type
class Generics<T>
{
List<T> list = new List<T>();
public void fun(T no1, T no2)
{
list.Add(no1);
}
}
我很想知道为什么C允许我们对类型使用任何变量,以及这种方法的优点是什么它不仅仅是泛型类型的别名,只是为了让代码更具可读性。看一看
字典
——这比字典
要清楚得多。使用变量的原因是可以有多个变量(类型),它们的名称不同。使用T
是一种惯例
T
用于类型
您可以使用TOut
或TIn
来更好地描述您的意图,或者twhatnever
查看或获取有关泛型命名约定的更多信息
搜索?q=泛型+命名+约定
您需要为泛型参数指定一个名称,否则无法引用它。例如,你还可以如何编写你的乐趣(T no1,T no2)方法?您不能使用实际类的名称(因为您还不知道它是什么-这就是您使用泛型的原因!),但是您需要以某种方式引用它,因此您可以指定一个引用未知类的名称,在本例中是t
至于为什么经常使用T,这只是一个惯例——T代表(T)ype。你可以用任何你想要的东西。通常,当一个类有多个泛型参数时,您会将它们视为,例如,GenericClass,这只是一个基于从T开始按字母顺序排列的约定。通常,您会看到更有意义的名称,例如,泛型字典类可以定义为dictionary,以便更清楚地了解类型的用途。T或X只是“Type”变量的表示形式,您可以使用其他类型,只要没有名为T或X的已知类型
class Generics<X>
{
List<X> list = new List<X>();
public void fun(X no1, X no2)
{
list.Add(no1);
}
}