読者です 読者をやめる 読者になる 読者になる

オブジェクトの比較

C#

参照型と値型の違いを理解する必要がある。
値型の場合は同じものをコピーしている。
参照型は違うものを新しく生成している。

値型の場合

適当に作った構造体のインスタンスを比較してみる。

struct myStruct
{
    private int hoge;
}

class Tester {
    static void Main() {
        myStruct hoge1 = new myStruct();
        myStruct hoge2 = new myStruct();

        Console.WriteLine("{0}", hoge1 == hoge2); // => True
    }
}

参照型の場合

適当に作ったクラスのインスタンスを比較してみる。

class myClass {
    public void bar() {
        // なにか処理
    }
}

class Tester
{
    static void Main() {
        myClass s = new myClass();
        myClass b = new myClass();

        Console.WriteLine("{0}", s == b); // => False
    }
}

値型と参照型の違いを理解するために

同じインスタンスをコピーして、操作してみるのがよい。
これからやる。

ちなみに文字列は

参照型だが、挙動はほぼ値型。
上記の比較も値型の結果と一致する。

参考サイト

クラス -構造体- | 独学C#
http://www12.plala.or.jp/dokugaku/lecture/6/4.html