タイトル : 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 を再確認してください。 |