在泛型类型或方法定义中,类型参数是客户端在实例化泛型类型的变量时指定的特定类型的占位符。泛型类(如泛型介绍(C# 编程指南)中列出的 GenericList<T>)不可以像这样使用,因为它实际上并不是一个类型,而更像是一个类型的蓝图。若要使用 GenericList<T>,客户端代码必须通过指定尖括号中的类型参数来声明和实例化构造类型。此特定类的类型参数可以是编译器识别的任何类型。可以创建任意数目的构造类型实例,每个实例使用不同的类型参数,如下所示:
GenericList<ExampleClass> list2 = new GenericList<ExampleClass>();
GenericList<ExampleStruct> list3 = new GenericList<ExampleStruct>();
在每个 GenericList
public delegate TOutput Converter<TInput, TOutput>(TInput from);
public class List<T> { /*...*/ }
考虑使用 T 作为具有单个字母类型参数的类型的类型参数名。
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T : struct { /*...*/ }
务必将“T”作为描述性类型参数名的前缀。
考虑在参数名中指示对此类型参数的约束。例如,可以将带有 ISession约束的参数命名为TSession
新闻热点
疑难解答