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();
        }
    }
}
View Code
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();
        }
    }
}
原文地址:https://www.cnblogs.com/han1982/p/3208713.html