using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WinForm { public class MyStackGeneral<T> where T:IComparable<T> { private T[] _elements; private int _pointer; public MyStackGeneral(int size) { _elements = new T[size]; _pointer = 0; } public void Push(T item) { if (_pointer > _elements.Length - 1) { throw new Exception("Stack is Full."); } _elements[_pointer] = item; _pointer++; } public T Pop() { _pointer--; if (_pointer < 0) { throw new Exception("Stack is Empty"); //return default(T); } return _elements[_pointer]; } public bool Find(T keyword) { bool found = false; for (int i = 0; i < _pointer; i++) { if (_elements[i].CompareTo(keyword) == 0) { found = true; break; } } return found; } } } 通过使用where 关键字来约束泛型