默认分类 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();

}

}

转载于:https://www.cnblogs.com/aqi0530/archive/2010/12/10/1902043.html

C#泛型学习实例(简单易懂)相关推荐

  1. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

  2. 一、css清除浮动方法学习笔记总结(超详细,简单易懂)

    ** css清除浮动方法学习笔记总结(超详细,简单易懂) ** 问题: 上图中,由于container(父级元素)未设置高度,其内部子元素设置了float浮动,导致与container同级(也就是co ...

  3. matlab exm,exm 《Experiments with MATLAB》这本书的程序源码,附中文注释,简单易懂,是学习 238万源代码下载- www.pudn.com...

    文件名称: exm下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 1154 KB 上传时间: 2014-11-21 下载次数: 6 提 供 者: 刘晏池 详细 ...

  4. 亲测简单易懂可用:阿里云OSS入门实战2(集成到SpringBoot项目中存放用户头像)

    亲测简单易懂可用:阿里云OSS入门实战2(集成到SpringBoot项目中存放用户头像) 大噶好,我们继续延续上一章,学习如何使用OSS存放用户头像代码示例; 在application.propert ...

  5. 涵盖 14 大主题!最完整的 Python 学习实例集来了!

    机器学习.深度学习最简单的入门方式就是基于 Python 开始编程实战.最近闲逛 GitHub,发现了一个非常不错的 Python 学习实例集,完全是基于 Python 来实现包括 ML.DL 等领域 ...

  6. 深度学习之生成对抗网络(1)博弈学习实例

    深度学习之生成对抗网络(1)博弈学习实例 博弈学习实例  在 生成对抗网络(Generative Adversarial Network,简称GAN)发明之前,变分自编码器被认为是理论完备,实现简单, ...

  7. python如何安装panda数据库_在Pycharm中安装Pandas库方法(简单易懂)

    开发环境的搭建是一件入门比较头疼的事情,在上期的文稿基础上,增加一项Anaconda的安装介绍.Anaconda是Python的一个发行版本,安装好了Anaconda就相当于安装好了Python,并且 ...

  8. 机器学习经典算法决策树原理详解(简单易懂)

    ↑ 点击上方[计算机视觉联盟]关注我们 最经典的决策树算法有ID3.C4.5.CART,其中ID3算法是最早被提出的,它可以处理离散属性样本的分类,C4.5和CART算法则可以处理更加复杂的分类问题, ...

  9. 公式太多,读不懂? 一文带你领略KNN近邻算法~简单易懂

    ↑ 点击上方[计算机视觉联盟]关注我们 K近邻算法采用测量不同特征值之间的距离方法进行分类. K-近邻算法工作原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中的每个数据都存在标签,即我们知 ...

最新文章

  1. Linux 创建用户分配文件夹权限
  2. VSTS Code Analysis 错误 CA1014 CLSCompliantAttribute 及Suppress Message (镇压Code Ananlysis)...
  3. 如何快速高效读懂1本书
  4. JS判断一个数组中是否有重复值的三种方法
  5. Win7下搭建外网环境的SVN服务器
  6. abovedisplayskip无效_latex公式图片行间距段间距调整心得 -
  7. kubernetes资源--RC和RS
  8. vue + wangeditor封装富文本组件
  9. 简单实现x的n次方pta_Day12 :数值的整数次方
  10. ASP.NET Core的路由[2]:路由系统的核心对象——Router
  11. ORACLE执行计划中的执行顺序
  12. Js中apply和call
  13. Vulnhub-Moneybox
  14. 苹果修复用户位置有关的安全漏洞,苹果Find My帮你防丢
  15. 量子计算的基本概念:量子位、量子纠缠、量子比特、量子算法
  16. 【OBS Studio】脚本自动生成大量场景思考实践
  17. 引力波探测,冷冻电镜研究:两项诺奖GPU功不可没
  18. 【转】博弈论中的几个经典问题
  19. 2022年天梯赛题目记录
  20. 静态时序分析(STA) —— 时序检查

热门文章

  1. 需要凭据_PE管件连接时有哪些需要注意的地方
  2. CSS布局讲解-float浮动布局使用
  3. javascript不定参数
  4. 【编辑器】VSCode+PHPstudy环境配置,PHP简易开发环境搭建
  5. 2021牛客暑期多校训练营2,签到题CDFKI
  6. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南):签到题CDGM
  7. Python入门--常用的内置模块
  8. python入门--动态绑定属性和方法
  9. 输入广义表建立双亲表示的树and给定双亲表示的树输出广义表表示的树
  10. 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)