C#のクラスと構造体

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());
        }
    }
}