C#語法學習泛型(gereric)
/*
* 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)
*/
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: 上午 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/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();
}
}
* 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();
}
}
申明
非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
博文欢迎转载,但请给出原文连接。