泛型

来源:互联网 发布:酷听说软件下载 编辑:程序博客网 时间:2024/06/04 17:54

参考博客c#之泛型详解
参考书籍《c#高级编程》(第七版)
1.性能
泛型在使用的过程中不用装箱和拆箱,更加节省性能。
例如List和ArrayList比较,List实用了泛型了,比ArrayList更加节省性能。
2.类型安全
泛型在使用时就规定了参数的类型,在类型上更加安全,能在编译时发现错误。
3.二进制代码的重用
泛型可以更好的重用二进制代码。泛型类可以定义一次,并且有许多不同类型的实例化。
4.命名约定
(1).无任何特殊要求
泛型类型的名称用字母T作为前缀
只是用了一个泛型类型就可以使用字母T作为泛型类型的名称

//泛型列表public class List<T>{}

(2).有特殊要求(必须实现一个接口或者派生自基类),或者使用了两个或者多个泛型,就应该给泛型使用描述性名称。

public delegate TOutput Converter<TInput,TOutput>(TIntput from);public class SortedList<TKey,TValue>{}

5.使用泛型模拟栈(c#)

public class Stack<T>    {        private T[] m_item;        public T Pop(){...}        public void Push(T item){...}        public Stack(int i)        {            this.m_item = new T[i];        }}

6.泛型类型
泛型类型包括常用的泛型类、接口、方法和委托,可以通过进一步定制泛型类型的default关键字和类型约束使用泛型技术。协变和抗变这两种形式的变体为泛型提供了更大的灵活性。
7.泛型类的实现及使用(c#)

using System;class Test<T>{ T obj; public void F(T t){  obj=t;  Console.WriteLine("泛型类Test的一个参数的方法F():"+t.ToString()); } public void F(){  Console.WriteLine("泛型类Test的无参数方法F()。"); } }Class Program{ static void Main(string[] args) {  Test<Program> t1=new Test<Propgram>();  Test<string> t2=new  Test<string>();  t1.F();  t2.F("Hellow!");  t3.F(10); }}
原创粉丝点击