关于泛型的基本概念

最近都没整么写博客了,想了想还是写一篇!

List<T>


1:泛型概述

泛型主要提高了代码的重用性,例如,可以将泛型看成是一个可回收的箱子,如果在箱子上面贴上苹果的标签,那么该箱子就可以用来运送苹果,
如果给箱子贴上西瓜的标签,那么该箱子就可以用来运送西瓜。

2:泛型参数 T

泛型参数T可以看做是一个占位符,它不是一种类型,它仅仅代表了某种可能的类型,类型参数T可以在使用时用类型来代替
3:泛型参数命名准则:

(1)使用描述性名称命名泛型类型参数,除非单个字母名称完全可以让人了解它表示的意义,而描述性名称没有更多的意义。
比如:public interface(接口关键字) ISessionChannel<Session> //泛型接口
public delegate(委托关键字) TOutput<Input,OutPut> //定义一个委托

泛型接口:
interface [接口名称]<T>
{
【接口体】
}

声明泛型接口时,与一般接口的唯一区别就是增加了一个<T>,一般来说,申明泛型接口和声明非泛型接口遵循相同的规则,泛型类型声明所
实现的接口必须对所有可能的构造类型都保持唯一,否则就无法确定该为某些构造类型调用哪个方法

关于参数T
1:T:结构---类型参数必须是值类型,可以指定除了Nullable意外的任何值类型
2:T:类---类型参数必须是引用类型
3:new()----类型参数必须具有无参数的公共构造函数,当与其它一起使用时,new()约束必须最后指定
4:T:<接口名称> 类型参数必须是指定的接口或者实现指定的接口,可以指定多个接口约束,约束也可以是泛型的

泛型方法:
泛型方法的声明形式:
【修饰符】 [返回类型] 方法名<参数T>()
{
【方法体】
}

 

猜你喜欢

转载自www.cnblogs.com/remain/p/9945230.html