C# でグローバル変数

グローバル変数のスコープを定義するのにpartial クラスを利用する。
そして、全てクラスをpartialクラスの内部クラスとして定義する。

Global.cs

static partial class GlobalScope {
    static int global_var;
}

Foo.cs

static partial class GlobalScope {

    class Foo {
        int _foo;
        public Foo() {
            _foo = global_var;
        }
    }
}

Bar.cs

static partial class GlobalScope {

    class Bar {
        int _bar;
        public Bar() {
            _bar = global_var;
        }
    }
}