tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: EqualsメソッドとIs演算子の違い
投稿日: 2007/07/23(Mon) 15:28
投稿者よねKEN
> 違いが今ひとつピンときません。下記コードで検証してみたんですが
> これだと EqualsメソッドとIs演算子の違いが見られませんでした。

提示の例はTypeDefineクラスがEqualsメソッドをオーバーライドしていないので、
Objectクラスが持つEqualsメソッドの実装がそのまま使われます。
"結果としてたまたま"Is演算子を使った場合とEqualsメソッドを使った場合は
同一の挙動をします。

大吉末吉さんの提示されているリンク「Equals メソッドの実装」
にEqualsメソッドをオーバーライドしている例があるのでそれを参考に
オーバーライドして見てください。
XとYの比較でIsとEqualsでは異なる結果になります。

>         'Debug.Print(X.ReferenceEquals(Y))    'コンパイルエラー
>         'Debug.Print(X.ReferenceEquals(Z))    'コンパイルエラー

ReferenceEqualsはObjectクラスのSharedメソッドです。
>If Object.ReferenceEquals(オブジェクト1, オブジェクト2) Then
を再確認してください。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。