オブジェクトの比較
参照型と値型の違いを理解する必要がある。
値型の場合は同じものをコピーしている。
参照型は違うものを新しく生成している。
値型の場合
適当に作った構造体のインスタンスを比較してみる。
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