C#においてはクラスと構造体の違いって、参照型か値型かの違いなんですね。
namespace ConsoleApplication1 { class hoge { public int x; } struct piyo { public int x; } class Program { static void Main(string[] args) { //クラスの場合 hoge hoge1 = new hoge(); hoge hoge2; hoge1.x = 1; hoge2 = hoge1; hoge2.x = 2; // hoge1.xも2になる Console.WriteLine(hoge1.x.ToString() + "," + hoge2.x.ToString()); //構造体の場合 piyo piyo1; piyo piyo2; piyo1.x = 1; piyo2 = piyo1; piyo2.x = 2; // piyo1.xは1のまま Console.WriteLine(piyo1.x.ToString() + "," + piyo2.x.ToString()); } } }