part01.02 泛型与集合:泛型

泛型是什么?

泛型的定义主要有以下两种:

1. 在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是目前比较常见的定义)

2. 在编码中一些包含参数的,其参数可以代表类或对象等等(目前大多数把这称作模板)

不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。

一些强类型程序语言支持泛型,其主要目的是加强类型安全及减少类转换次数,但一些支持泛型的程序语言只能达到部分目的。

 

类  泛型<具体类型>
{
  具体类型  值;

  设置值(具体类型  具体类型对象)
  {
    值 = 具体类型对象;
  }
  获取值()
  {
  返回  值;
  }
}

 1  class GenericsType<T>
 2     {
 3         public T Value { get; set; }
 4         public void Set(T input)
 5         {
 6             Value = input;
 7         }
 8     }
 9 
10     class Demo
11     {
12         public static void Func()
13         {
14             var a = new GenericsType<string>();
15             a.Set("abc");
16             var a1 = a.Value;
17 
18             var b = new GenericsType<int>();
19             b.Set(12);
20             var b1 = b.Value;
21 
22             Console.WriteLine(a1 + b1);
23             Console.ReadKey();
24         }
25     }

泛型的理解:

泛指所有可能的对象:定义一类 “东西” ,可以约束东西的一些特征 (属性和方法),例如容器作为泛型来看,其基本的特征就有 “容积” 这样的值。

“东西” 用到的时候才成为对象:泛型容器在实例化的时候,需要指明具体的类型(例如立方体),才能做计算容器的处理。类似的概念:一杯喝的东西,也可以看成是泛型, 在需要喝的时候,才实例化:一杯酒、一杯牛奶、一杯开水 ......

和抽象类不一样:抽象类定义了具体的规格例如属性、方法,使用之前就知道其基本的结构信息了,只是属性可以直接在派生类用,方法根据需要重写。已经是具体的类型了。

和接口类不一样:与抽象类相似,只是在接口类中多有的属性、方法都需要在派生类中显示显示。

参考网址:https://msdn.microsoft.com/zh-cn/library/ms172193(v=vs.95).aspx

posted @ 2017-08-02 11:16  能哔哔就别唧唧  阅读(209)  评论(0)    收藏  举报