Limiting generics class to use selective types

There are certain situations where you only want to use generics types for certain types. Mean you want to limit it to be used for certain types only. Consider the following example where we have a two class CurrentEmployee and ExEmployee and we want to limit our SuperPerson to use type that are only CurrentEmployee because in my company only those person can be super persons who are currently working with us :). We use the key word where to write the name of the class. Now this could be a name of the class, an interface implemented certain classes, a base class or a struct.

 

	
public class LimitingGenerics
{
	public void tryIt()
	{
		//error var employee = new SuperPerson();
		var employee = new SuperPerson();
	}
}
public class CurrentEmployee
{
	public CurrentEmployee(string s, int i)
	{}
}
public class ExEmployee
{
	public ExEmployee(string s, int i)
	{}
}
public class SuperPerson where T : CurrentEmployee
{
	public SuperPerson()
	{
		Console.WriteLine("I am a super employee");
	}
}