How to implement generic data member and generic property in C#
Understand generic data
member and generic property in C#
In this article we will learn generic data member and generic
property in C#. Those are very important in generic class implementation.
Generic data member
In generic class, we can define data member as generic type.
Now what is generic data member? Generic data member is type less data member
of generic class. In run time we can specify data type. In below example we
have implemented concept of generic data member. MyGeneric class is generic
class and it takes two generic data type as argument (A and B). According to
type of A and B we will create two data member called First and Second.
using System;
using System.Collections;
using System.Data.SqlClient;
using System.Threading;
using System.Data.Common;
using System.Data;
using System.Reflection;
using System.Globalization;
namespace Test1
{
class MyGeneric<A,B>
{
public A First;
public B Second;
public MyGeneric(A objA, B objB)
{
this.First = objA;
this.Second = objB;
}
public voidcShowData()
{
Console.Write(First);
Console.WriteLine(Second);
}
}
class Program
{
static void Main(string[] args)
{
MyGeneric<int, String> obj = newcMyGeneric<int,string>(100, "sourav");
obj.ShowData();
MyGeneric<string,string> obj1 = new MyGeneric<string, string>("Sourav","Kayal");
obj1.ShowData();
Console.ReadLine();
}
}
}

From
Main() function we are creating object of MyGeneric class passing integer and
string data simultaneously. And within showData() function just we are printing
value of two data member.
Generic property of
C#
Generic property comes in picture when we define generic
data member and want to set data member through property. Syntax is generic property is very similar
with general property. Have a look on below code to understand generic
property.
Here GetSet is a generic property which is used to set and get
to DataMember which is one generic data member.
using System;
using System.Collections;
using System.Data.SqlClient;
using System.Threading;
using System.Data.Common;
using System.Data;
using System.Reflection;
using System.Globalization;
namespace Test1
{
class MyGeneric<A>
{
public A DataMember;
public A GetSet
{
get
{
return this.DataMember;
}
set
{
this.DataMember = value;
}
}
}
class Program
{
static void Main(string[] args)
{
MyGeneric<int> obj = new MyGeneric<int>();
obj.GetSet = 100;
Console.WriteLine("Value from Property : " + obj.GetSet);
Console.ReadLine();
}
}
}
Here is
sample output
