c# 泛型(Generic)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 泛型 { 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 Program { static void Main(string[] args) { //Stack s = new Stack(10); //s.Push(111); //s.Push(222); //Console.WriteLine((int)s.Pop() + (int)s.Pop()); //333 //Console.ReadKey(); //Stack s = new Stack(10); //s.Push(111.3); //s.Push(222.4); //Console.WriteLine((double)s.Pop() + (double)s.Pop()); //333.7 //Console.ReadKey(); Stack s = new Stack(10); s.Push("111.3"); s.Push("222.4"); Console.WriteLine((string)s.Pop() + " " + (string)s.Pop()); //222.4 111.3 Console.ReadKey(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; //泛型(Generic) //泛型是2.0版C#语言和公共语言运行库(CLR)中的一个新功能。泛型将类型参数的概念引入.NET Framework, //类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定推迟到客户端代码声明并 //实例化该类或方法的时候。列如,通过使用泛型类型到参数 T,您可以编写其他客户端代码能够使用的单个类, //而不致引入运行时强制转换或装箱操作的成本或风险。 namespace 泛型1 { 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 Program { static void Main(string[] args) { Stack<double> s = new Stack<double>(10); s.Push(111.3); s.Push(222.4); Console.WriteLine((double)s.Pop() + (double)s.Pop()); //333.7 Console.ReadKey(); } } }