>>653
呼び出す方は見た目一緒でもやってること変るからしかたない。

int Hoge; を
int Hoge { get; set; } にするってことは

xxxx.Hoge = 1; の代入文を
xxxx.setHoge(1); のメソッド呼び出しに置きかえるわけだから
コンパイル結果が変わる。