C# Language Generic Static Constructors


Example

If the type on which the static constructor is declared is generic, the static constructor will be called once for each unique combination of generic arguments.

class Animal<T>
{
    static Animal()
    {
        Console.WriteLine(typeof(T).FullName);
    }

    public static void Yawn() { }
}

Animal<Object>.Yawn();
Animal<String>.Yawn();

This will output:

System.Object
System.String

See also How do static constructors for generic types work ?