>>650
public int Hoge;

これを

private int hoge;
public int {get{return hoge;} set{hoge = value;}}

に書き換えるだけじゃないの?
この変更でもリコンパイルいるの?