public class Program
{
public static void Main()
Animal dog = new Animal();
Animal.Save(dog);
}
class Animal
public static void Save<T>(T target) where T : Animal, new()
/*
A generic class can have restrictions (aka constraints)
via the WHERE contextual keyword
If a consumer attempts to instantiate the class
and attempts to use a type that is not permitted
(by a constraint) a compile-time error is generated
*/