我正在msdn
上阅读泛型我们可以使用T for type
class Generics<T>
{
List<T> list = new List<T>();
public void fun(T no1, T no2)
{
list.Add(no1);
}
}
然后我尝试将不同的变量用于类型,例如X for type
如下,并且有效
class Generics<X>
{
List<X> list = new List<X>();
public void fun(X no1, X no2)
{
list.Add(no1);
}
}
我感兴趣知道为什么C#允许我们使用任何类型的变量以及这种方法的优势
答案 0 :(得分:10)
为了使代码更具可读性,它不仅仅是泛型类别的变量。看看Dictionary<TKey, TValue>
- 它比Dictionary<T, X>
要清晰得多。
答案 1 :(得分:3)
使用T
是一种契约。
T
。
如果更好地描述了您的意图,您可以使用TOut
或TIn
,或TWhatever
。
搜索Q =泛型+命名+ convension
答案 2 :(得分:2)
使用变量的原因是可以有多个变量(类型)s,并且它们之间的区别是它们被命名。
答案 3 :(得分:0)
您需要为泛型参数指定名称,否则无法引用它。例如,你怎么能写出你的乐趣(T no1,T no2)方法?你不能使用实际类的名称(因为你还不知道它是什么 - 这就是你使用泛型的原因!),但你需要以某种方式引用它,所以你指定一个名字,指未知类,在本例中为T。
至于为什么经常使用T,它只是一个惯例--T代表(t)ype。你可以使用你想要的任何东西。通常,当一个类有多个通用参数时,您会将它们视为例如GenericClass&lt; T,U,V&gt;而且这只是一个基于从T字母顺序进行的约定。通常你会看到更有意义的名字,例如,泛型字典类可以被定义为Dictionary&lt; TKey,TValue&gt;使用的类型更清晰。
答案 4 :(得分:0)
T或X只是“类型”变量的表示,您可以使用其他变量,只要没有名为T或X的已知类型。