Monday 11 August 2014

Generics in C#

Generics:
Generics allow you to delay the specification of the data type of programming elements in a class or a method, until it is actually used in the program. In other words, generics allow you to write a class or method that can work with any data type.
You write the specifications for the class or the method, with substitute parameters for data types. When the compiler encounters a constructor for the class or a function call for the method, it generates code to handle the specific data type. A simple example would help understanding the concept:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    class Program
    {
        static void Main(string[] args)
        {
    
            G g = new G();
     g.Call();           
        }

    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    class G
    {
        class Generics<T>
        {
            public void equality(T x, T y)
            {
                if (x.Equals(y))
                { Console.WriteLine("paramater matched"); }
                else
                { Console.WriteLine("paramater didn't matched"); }
            }
          
        }
        public void Call()
        {
            Generics<int> ig = new Generics<int>();
            ig.equality(12, 8);
            Generics<string> sg = new Generics<string>();
            sg.equality("shoeb", "shoeb");
        }
    }
}

Output:
paramater didn't matched
paramater matched

No comments:

Post a Comment