【VB.NET】Is 演算子 の使い方
Is 演算子は、「A Is B」のように使い二つの参照型オブジェクトが同じものか調べるのに使います。
日本語で言うと「A と Bは同じです?」と質問すると、
「真(True)」or「偽(False)」の結果が返ってくるイメージです。
基本構文
A Is B
この同じですか?は同じ価値ですか?ではなくまったく同じものですか?を意味しています。
参照型にしか使えない事からも分かるかもしれませんが、参照先しているものが同じですか?です。
例えば、
スタバのなんちゃらフラペチーノを買って飲みました。
美味しかったです。
美味しかったのでまた、なんちゃらフラペチーノを買いました。
この2つのなんちゃらフラペチーノは同じですか?
なんちゃらフラペチーノには違わないし、味も量も同じなので同じと言えるのが価値が同じ
1日目と2日目で物そのものは違うので参照先は違うというのが今回のお話。
内容
VB.NET 初心者というか全体的にエンジニアが最初に躓くポイントの1つでもあるのですが、
VB.NETでは参照型と値型という2つの情報の持ち方をします。
値型はそのままずばり値を持っています。
X=100 ならXは100を持っています。
しかし、参照型の場合は、
参照先を持っています。
先ほどなんちゃらフラペチーノの例を上げましてが、
別の例として、「にんてん」という人物が居たとします。
「おじさん」と呼ばれたら反応します。
はーい
また、「ダンディ」と呼ばれても反応します。
おっす、オラに用か?
呼び名は違っていてもにんてんに話しかけているので、反応するのはどれも「にんてん」です。
おじさん=にんてん であり
ダンディ=にんてん なので三段論法で おじさん=ダンディ です。
IS演算子で書くと
おじさん IS にんてん ’True ダンディ IS にんてん ’True おじさん IS ダンディ ’True
です。
しかし、世の中のおじさんが全てが当然ながらにんてんではありません。
おじさんと呼びかけられているのが、にんてんなのかどうかを確かめるのがIS演算子なのです。
プログラムコードで書くとこんな感じです。
Module Module1 Sub Main() '参照先が同じオブジェクト Dim にんてん = New String("にんてん") Dim おじさん = にんてん Dim ダンディ = おじさん Console.WriteLine(おじさん Is にんてん) 'True Console.WriteLine(ダンディ Is にんてん) 'True Console.WriteLine(おじさん Is ダンディ) 'True '参照先が違うオブジェクト Dim おじさん2 = New String("にんてんじゃない") Dim ダンディ2 = New String("にんてんじゃない") Console.WriteLine(おじさん2 Is ダンディ2) 'False End Sub End Module
コメント