// Generics in c#

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace csharpgenerics

{

          class Stack<T>

          {

                    private T[] array;

                    private int index;

                    public int Max_Size = 50;

                    public Stack()

                    {

                             array = new T[Max_Size];}

 

                    public T Pop()

                    {

 

                             if(index == 0)

                                       throw new System.InvalidOperationException("Stack is emply");

                             return array[--index];

                    }

 

                    public void Push(T item)

                    {

 

                             if(index == Max_Size)

                                       throw new System.StackOverflowException("Stack is full");

                             array[index++] = item;

                    }

 

          }

 

          class Generics

          {

 

                    static void Main(string[] args)

                    {

                             Stack<int> stack = new Stack<int>();

                             stack.Push(1);

                             int num = stack.Pop();

                             stack.Push(5);

                             //Below line will not work because you opened the stack object as interger

                             // string numNext = stack.Pop();

                             // to work above lines you need to open object as string similar with

                             // other user types.

                             /*

 

                             Stack<string> stack = new Stack<string>();

                             stack.Push("1");

                             string num = stack.Pop();

                             stack.Push("5");*/

                    }

          }

}

Next Recommended Readings