Use the concept of the default keyword to initialize the array with its respective types.
using System; class MyStoreHouse<T> { T[] myStore = new T[3]; int position = 0; public MyStoreHouse() {// www.j av a 2 s . co m for (int i = 0; i < myStore.Length; i++) { myStore[i] = default(T); } } public void AddToStore(T value) { if (position < myStore.Length) { myStore[position] = value; position++; } else { Console.WriteLine("Store is full already"); } } public void RetrieveFromStore() { foreach (T t in myStore) { Console.WriteLine(t); } //Or Use this block //for (int i = 0; i < myStore.Length; i++) //{ // Console.WriteLine(myStore[i]); //} } } class Program { static void Main(string[] args) { MyStoreHouse<int> intStore = new MyStoreHouse<int>(); intStore.AddToStore(45); intStore.AddToStore(75); intStore.RetrieveFromStore(); MyStoreHouse<string> strStore = new MyStoreHouse<string>(); strStore.AddToStore("abc"); strStore.AddToStore("def"); strStore.AddToStore("ghi"); strStore.AddToStore("jkl");//Store is full already strStore.RetrieveFromStore(); } }