top

Search

C# Tutorial

Generics in C# allow the creation and design of classes and methods that defer the specification of types until the class or method is declared. Simply put, Generics allow the creation of classes and methods that work with any data type.Salient Points of GenericsSome of the salient points about Generics are given as follows:Generics are mostly used to create collection classes.Generics can also be used to create generic classes, methods, interfaces, delegates, events etc.Code reuse, performance enhancement, type safety etc. are all benefits of Generics.There are many Generic collection classes in the Systems.Collections.Generic namespace that should be frequently used.Generic data type information can be obtained at run-time by using reflection.Generic Classes and Generic MethodsA Generic class can be defined using angle brackets <>. It has a type parameters that can handle any type that is specified. A Generic method is a method that is declared by using type parameters. Both Generic classes and methods are an integral part of Generics in C#.A program that demonstrates generic class and generic method in C# is given as follows:Source Code: Program to implement generic class and generic method in C#using System; public class GClass < T > { private T GMemberVar; public GClass(T data) {  GMemberVar = data; } public T GMethod(T GParam) {  Console.WriteLine("The Generic parameter is: {0}", GParam);  return GMemberVar; } public T genericProperty {  get;  set; } } public class Example { public static void Main() {  GClass < char > GObj1 = new GClass < char > ('A');  GClass < int > GObj2 = new GClass < int > (65);  char val1;  int val2;  Console.WriteLine("For a character variable");  val1 = GObj1.GMethod('Z');  Console.WriteLine("The Generic member variable is: {0}", val1);  Console.WriteLine("For an integer variable");  val2 = GObj2.GMethod(34);  Console.WriteLine("The Generic member variable is: {0}", val2); } }The output of the above program is as follows:For a character variable The Generic parameter is: Z The Generic member variable is: A For an integer variable The Generic parameter is: 34 The Generic member variable is: 65Now let us understand the above program.GClass is a generic class in the above program. It contains a generic member variable GMemberVar and a parameterized constructor that initializes the value of GMemberVar to data. The Generic method GMethod() displays the value of the parameter it recieves and returns GMemberVar. The code snippet for this is given as follows:public class GClass<T> {    private T GMemberVar;    public GClass(T data)    {        GMemberVar = data;    }    public T GMethod(T GParam )    {        Console.WriteLine("The Generic parameter is: {0}",  GParam);        return GMemberVar;    }    public T genericProperty { get; set; } }In the function Main(), there are two objects GObj1 and GObj2 that initialize their GMemberVar with A and 65 respectively. Then the method GMethod() is called using GObj1 and GObj2 respectively. The code snippet for this is given as follows:public static void Main() {        GClass<char> GObj1 = new GClass<char>('A');        GClass<int> GObj2 = new GClass<int>(65);        char val1;        int val2;        Console.WriteLine("For a charater variable");        val1 = GObj1.GMethod('Z');        Console.WriteLine("The Generic member variable is: {0}",  val1);        Console.WriteLine("For a integer variable");        val2 = GObj2.GMethod(34);        Console.WriteLine("The Generic member variable is: {0}",  val2); }
logo

C# Tutorial

Generics in C#

Generics in C# allow the creation and design of classes and methods that defer the specification of types until the class or method is declared. Simply put, Generics allow the creation of classes and methods that work with any data type.

Salient Points of Generics

Some of the salient points about Generics are given as follows:

  1. Generics are mostly used to create collection classes.
  2. Generics can also be used to create generic classes, methods, interfaces, delegates, events etc.
  3. Code reuse, performance enhancement, type safety etc. are all benefits of Generics.
  4. There are many Generic collection classes in the Systems.Collections.Generic namespace that should be frequently used.
  5. Generic data type information can be obtained at run-time by using reflection.

Generic Classes and Generic Methods

A Generic class can be defined using angle brackets <>. It has a type parameters that can handle any type that is specified. A Generic method is a method that is declared by using type parameters. Both Generic classes and methods are an integral part of Generics in C#.

A program that demonstrates generic class and generic method in C# is given as follows:

Source Code: Program to implement generic class and generic method in C#

using System;
public class GClass < T > {
private T GMemberVar;
public GClass(T data) {
 GMemberVar = data;
}
public T GMethod(T GParam) {
 Console.WriteLine("The Generic parameter is: {0}", GParam);
 return GMemberVar;
}
public T genericProperty {
 get;
 set;
}
}
public class Example {
public static void Main() {
 GClass < char > GObj1 = new GClass < char > ('A');
 GClass < int > GObj2 = new GClass < int > (65);
 char val1;
 int val2;
 Console.WriteLine("For a character variable");
 val1 = GObj1.GMethod('Z');
 Console.WriteLine("The Generic member variable is: {0}", val1);
 Console.WriteLine("For an integer variable");
 val2 = GObj2.GMethod(34);
 Console.WriteLine("The Generic member variable is: {0}", val2);
}
}

The output of the above program is as follows:

For a character variable
The Generic parameter is: Z
The Generic member variable is: A

For an integer variable
The Generic parameter is: 34
The Generic member variable is: 65

Now let us understand the above program.

GClass is a generic class in the above program. It contains a generic member variable GMemberVar and a parameterized constructor that initializes the value of GMemberVar to data. The Generic method GMethod() displays the value of the parameter it recieves and returns GMemberVar. The code snippet for this is given as follows:

public class GClass<T>
{
   private T GMemberVar;
   public GClass(T data)
   {
       GMemberVar = data;
   }
   public T GMethod(T GParam )
   {
       Console.WriteLine("The Generic parameter is: {0}",  GParam);
       return GMemberVar;
   }
   public T genericProperty { get; set; }
}

In the function Main(), there are two objects GObj1 and GObj2 that initialize their GMemberVar with A and 65 respectively. Then the method GMethod() is called using GObj1 and GObj2 respectively. The code snippet for this is given as follows:

public static void Main()
{
       GClass<char> GObj1 = new GClass<char>('A');
       GClass<int> GObj2 = new GClass<int>(65);
       char val1;
       int val2;
       Console.WriteLine("For a charater variable");
       val1 = GObj1.GMethod('Z');
       Console.WriteLine("The Generic member variable is: {0}",  val1);
       Console.WriteLine("For a integer variable");
       val2 = GObj2.GMethod(34);
       Console.WriteLine("The Generic member variable is: {0}",  val2);
}

Leave a Reply

Your email address will not be published. Required fields are marked *

Suggested Tutorials

Swift Tutorial

Introduction to Swift Tutorial
Swift Tutorial

Introduction to Swift Tutorial

Read More

R Programming Tutorial

R Programming

Python Tutorial

Python Tutorial