您的位置:首页 > 其它

泛型(1)--泛型类及其泛型特性

2011-03-27 20:26 99 查看
  创建泛型类:

  泛型类在该类后面加上<T>,将类型传入到类中,T作为类中成员的一种类型选择,T可以是任意类型,所以类中成员可以是任意类型
  注:T只是一个名称,它可以是任意的,<>才是泛型类型的关键字

  

  泛型化该类,枚举器的迭代所需的接口IEnumerable也需改成泛型版本IEnumerable<T> ,IEnumerable<T>接口派生于IEnumerable接口

        GetEnumerator()迭代返回接口IEnumerator<T>,为了实现迭代枚举器,最终还是要返回IEnumerable.IEnumerator接口,以实现IEnumerable接口
        所以在泛型IEnumerator<T>接口外需要加一层返回其父接口IEnumerator的GetEnumerator()方法

  

  下面代码,以链表为例,比较普通普通类型和泛型类型

 

静态成员特性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 泛型类的特性
{
//泛型类的静态成员特性:
//一个泛型类型(比如string或者int等)共享一个该泛型类的静态成员
//多个泛型类型就有多组静态成员
public class StaticDemo<T>
{
public static int x;
}

class Program
{
static void Main(string[] args)
{
#region 默认值特性和约束特性
////Document类型实例化泛型
////Document类型执行了IDocument接口 符合了约束
//DocumentManager<Document> dm = new DocumentManager<Document>();
//dm.AddDocument(new Document("Title A", "Sample A"));
//dm.AddDocument(new Document("Title B", "Sample B"));

////显示所有文档标题
//dm.DisplayAllDocuments();

//if (dm.IsDocumentAvailable)
//{
// Document d = dm.GetDocument();
// //显示第一个文档内容
// Console.WriteLine(d.Content);
//}
#endregion

#region 继承特性
////继承指定了泛型基类的类型的类
//SimpleCalc c = new SimpleCalc();
//Console.WriteLine(c.Add(1, 3));
//Console.WriteLine(c.Sub(3, 1));
#endregion

#region 静态成员特性
StaticDemo<string>.x = 4;
StaticDemo<int>.x = 5;
Console.WriteLine(StaticDemo<string>.x);
Console.WriteLine(StaticDemo<int>.x);
#endregion
}
}
}

未完待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: