どうやって書くんだ?

Javaのソースで以下のようなものがあります。

    static Map handlers = new HashMap();
    static {
        handlers.put("if", new HandlerFactory() {
                public SourceHandler create() { return new IfHandler(); }});
    }

C#だとどうやって書くんでしょうか?

    static Hashtable handlers = new Hashtable();
    コンストラクタ() {
        handlers.Add("if", ......);
    }

JavaのStatic InitializerはC#にはなさそうなので、コンストラクタに書きました。
で、HashtableにAddするオブジェクトをJavaのように書くとエラーになります。ここはどうやったらいいのでしょうか?わかる人がいたら教えてください。
あと、上記Javaの書き方はなんというのでしょうか?そちらでもいいです。わかる人がいたら教えてください。