·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
您现在的位置:天新网 > 软件开发 > .Net开发 > C#
C#语法学习泛型(gereric)
http://www.21tx.com 2008年10月31日 Blog Athrun

C#语法学习泛型(gereric)

/*
*CreatedbySharpDevelop.
*User:Administrator
*Date:2008/9/4
*Time:上午10:40
*泛型(gereric)
*/
usingSystem;
classStack
{
  privateint[]items;
  privateintcount;
  publicStack(intsize)
  {
    items=newint[size];
    count=0;
  }
  publicvoidPush(intx)
  {
    items[count++]=x;//這時是先賦值再進行自加咚?lt;br />  }
  publicintPop()
  {
    returnitems[--count];//先自減再返回值
  }
}
classTest
{
  staticvoidMain()
  {
    Stacks=newStack(10);
    s.Push(111);//先壓入111
    s.Push(222);//再壓入222
    Console.WriteLine(s.Pop().ToString());
    Console.WriteLine(s.Pop().ToString());
    /*
    *輸出結果為
    *222
    *111

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

    */
  }
}
  
/*
*CreatedbySharpDevelop.
*User:Administrator
*Date:2008/9/4
*Time:上午10:40

  *泛型(gereric)

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

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

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

  *

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

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

*/
usingSystem;
classStack
{
  privateobject[]items;
  privateintcount;
  publicStack(intsize)
  {
    items=newobject[size];
    count=0;
  }
  publicvoidPush(objectx)
  {
    items[count++]=x;//這時是先賦值再進行自加咚?lt;br />  }
  publicobjectPop()
  {
    returnitems[--count];//先自減再返回值
  }
}
classTest
{
  staticvoidMain()
  {
    Stacks=newStack(10);
    s.Push(111.1);//裝箱
    s.Push(222.2);//裝箱
    Console.WriteLine((double)s.Pop()+(double)s.Pop());//兩次折箱
  }
}
  
/*
*CreatedbySharpDevelop.
*User:Administrator
*Date:2008/9/4
*Time:上午11:01
*泛型(gereric)

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

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

*/
usingSystem;
classStack<T>//聲明泛型
{
  privateT[]items;
  privateintcount;
  publicStack(intsize)
  {
    items=newT[size];
    count=0;
  }
  publicvoidPush(Tx)
  {
    items[count++]=x;//這時是先賦值再進行自加咚?lt;br />  }
  publicTPop()
  {
    returnitems[--count];//先自減再返回值
  }
}
classTest
{
  staticvoidMain()
  {
    Stack<int>s=newStack<int>(10);
    s.Push(111);
    s.Push(222);
    Console.WriteLine(s.Pop()+s.Pop());
  }
}

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

  *

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

*
*
**/
  
/*
*CreatedbySharpDevelop.
*User:Administrator
*Date:2008/9/5
*Time:上午11:32
*兩個泛型參數的例子,通常用<T,S>
*/
usingSystem;
publicclassStu<T,S>
{
  privateTname;
  privateSage;
  publicStu(TName,SAge)
  {
    this.name=Name;
    this.age=Age;
  }
  publicvoidShow()
  {
    Console.WriteLine("姓名是:{0},年齡:{1}",name,age);
  }
}
classTest
{
  staticvoidMain()
  {
    Stu<string,int>t=newStu<string,int>("Athrun",26);
    t.Show();
  }
}

上一篇: C#语法学习异常处理(Exception)
下一篇: C#语法学习枚举类型(Enum)

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net