您的位置:首页 > 编程语言 > C#

C#泛型学习实例(简单易懂)

2010-12-10 10:37 274 查看

默认分类 2009-09-23 21:04:59 阅读62 评论0 字号:大中小 订阅

/*

* Created by SharpDevelop.

* User: Administrator

* Date: 2008/9/4

* Time: 上午 10:40

* 泛型(gereric)

*/

using System;

class Stack

{

private int[] items;

private int count;

public Stack(int size)

{

items=new int[size];

count=0;

}

public void Push(int x)

{

items[count++]=x;//這時是先賦值再進行自加運算

}

public int Pop()

{

return items[--count];//先自減再返回值

}

}

class Test

{

static void Main()

{

Stack s=new Stack(10);

s.Push(111);//先壓入111

s.Push(222);//再壓入222

Console.WriteLine(s.Pop().ToString());

Console.WriteLine(s.Pop().ToString());

/*

* 輸出結果為

* 222

* 111

* 這個程序演示了棧(Stack)的先進後出的原理

*/

}

}

/*

* Created by SharpDevelop.

* User: Administrator

* Date: 2008/9/4

* Time: 上午 10:40

* 泛型(gereric)

* 現在需要改變我們希望可以傳入float類型的數據

* 因此我們使用了弱類型的object,這時候我們傳入

* 的參數就可以是整行和其它類型的數據.

*

* 因為需要經過四次裝箱和拆箱操作,性能也就不是很好.

* 當然是說大量的數據情況下

*/

using System;

class Stack

{

private object[] items;

private int count;

public Stack(int size)

{

items=new object[size];

count=0;

}

public void Push(object x)

{

items[count++]=x;//這時是先賦值再進行自加運算

}

public object Pop()

{

return items[--count];//先自減再返回值

}

}

class Test

{

static void Main()

{

Stack s=new Stack(10);

s.Push(111.1);//裝箱

s.Push(222.2);//裝箱

Console.WriteLine((double)s.Pop()+(double)s.Pop());//兩次折箱

}

}

/*

* Created by SharpDevelop.

* User: Administrator

* Date: 2008/9/4

* Time: 上午 11:01

* 泛型(gereric)

* 解決了性能上的問題,同時寫程序也會覺的更方便

* 它引進行了一個類型參數

*/

using System;

class Stack<T>//聲明泛型

{

private T[] items;

private int count;

public Stack(int size)

{

items=new T[size];

count=0;

}

public void Push(T x)

{

items[count++]=x;//這時是先賦值再進行自加運算

}

public T Pop()

{

return items[--count];//先自減再返回值

}

}

class Test

{

static void Main()

{

Stack<int> s=new Stack<int>(10);

s.Push(111);

s.Push(222);

Console.WriteLine(s.Pop()+s.Pop());

}

}

/*上面使用了泛型,這樣提高了程序的性能,不再需要進行裝箱和拆箱的動作

*

* 如果我們現在需要使用小數只需要把泛型的類型參數改為double就可以了.

*

*

* */

/*

* Created by SharpDevelop.

* User: Administrator

* Date: 2008/9/5

* Time: 上午 11:32

* 兩個泛型參數的例子,通常用<T,S>

*/

using System;

public class Stu<T,S>

{

private T name;

private S age;

public Stu(T Name,S Age)

{

this.name=Name;

this.age=Age;

}

public void Show()

{

Console.WriteLine("姓名是:{0},年齡:{1}",name,age);

}

}

class Test

{

static void Main()

{

Stu<string,int> t=new Stu<string,int>("Athrun",26);

t.Show();

}

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