b00k.jp ~積み上げ式読書ノート~
公開日:
最終更新日:2018/06/02

【C#】同値性と同一性

プログラミングをする上で、変数が同じかを比較するという操作は良く行われる。
しかし、この値の比較は値型と参照型で少し挙動が異なってくる。

C#

同値性と同一性

「変数が同じ」という時に、そこには2つの意味合いがある。

一つは、同値性
これは、二つの変数の値が同じであるということである。

もう一つは、同一性
これは、二つの変数が同じメモリを参照しているかということである。

値型、参照型、string型の比較方法

同一性、同値性を比較する際は、「==」演算子や「equals」メソッドを使用する。
しかし、これらはオブジェクトによって微妙に動きが異なるために、注意が必要になってくる。

値型

値型は、「==」、「equals」の両方で同値性を確認することができる。
「==」、「equals」のどちらを使用しても、値が同じかを検証するということ。
それぞれが別の変数(メモリ)に格納されていても関係ない。

参照型

参照型の場合は、「==」、「equals」で挙動が異なる。
「==」は、同一性、つまりそのオブジェクトが同じメモリを参照しているか。
「equals」は、同値性、つまりそのオブジェクトが同じ値を有するかを検証する。

参照型:string

参照型でもstringは、挙動がことなる。
「==」、「equals」どちらでも同値性の確認を行う。
これは、「==」演算子がオーバーライドされているためである。

まとめ

・int型は、「==」、「equals」どちらも同値性を検証する。
・オブジェクト型(string以外)は「==」が同一性、「equals」が同値性を検証する。
・オブジェクト型(string型)は、「==」、「equals」どちらも同値性を検証する。

カテゴリー: IT, プログラミング
タグ   :

努力が続かないとお悩みの方へ!

努力のコツ PC用バナー

Amazonにて発売中!!

試験に受かる、給料を上げる、ビジネスを立ち上げる…。
自分の人生をよりよくしていくには、何よりも努力が欠かせません。
しかし、そうはわかっていてもなかなか続かないもの。。。
「めんどくさい」、「明日からでいいや」、「どうせやっても無駄だし」…
こんな風に私たちは努力を続けられずにいます。

ですが、それはあなたが怠けものだからとか、根性がないからというわけではありません。
どうすれば努力が続くのか、その「テクニック」を知らないだけなのです!
本書では、そんな「どうすれば努力が続くのか」というテクニックや心構えを集めました。
「達成したい夢があるのに、どうしても頑張れない…」
そんなあなたに是非とも読んでほしい1冊となっています。


広告

オススメ記事


PAGE TOP ↑