¿Cuál es el c # equivalente de estática {…} en Java?

En Java puedo escribir:

public class Foo {

    public static Foo DEFAULT_FOO;

    static {
        DEFAULT_FOO = new Foo();
        // initialize 
        DEFAULT_FOO.init();
    }

    public Foo() {
    }

    void init() {
        // initialize
    }
}

¿Cómo puedo obtener la misma funcionalidad en C # (donde los miembros estáticos se inicializan antes de usarlos)? Y, si esto es algo malo que hay que tratar de hacer, ¿cuál es un mejor enfoque?

Respuestas a la pregunta(2)

Su respuesta a la pregunta