qu'est-ce que le c# équivalent de statique {...} en Java?

En Java, je peux écrire:

public class Foo {

    public static Foo DEFAULT_FOO;

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

    public Foo() {
    }

    void init() {
        //initialize
    }
}

Comment puis-je obtenir le même functionailty en C# (où les membres statiques sont initialisés avant de l'utiliser)? Et, si c'est une mauvaise chose pour essayer de faire, ce qui est une meilleure approche?