値型と参照型の比較の違い
C#の変数には大きく2つ、値型と参照型があります。
値型、参照型については別のサイトで調べてください^^ プログラムでif(a==b)みたいな比較文を書きますが、変数a,bが 値型、参照型で比較するものが異なります。 薄い赤色が値型の領域で水色のブロックが参照型の領域です。 val1とval2はint型で値は65535が入ってます。 data1は上から3番目の領域を指し、data2とdata3は上から4番目の領域を指してます。 まずは簡単なところで 値型の比較は直感的でわかりやすいです。 単純に値と値を比較し同じか異なるかで判定します。 val1とval2の値はともに65535なので同じと判定します。 次は参照型の比較を 参照型の比較は中身の値を見ません。 data1とdata2が指す入れ物が同じか異なるかを判定します。 この場合は入れ物が違うので異なると判定します。 data2とdata3は同じ入れ物を指しているので同じと判定します。 |