Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
String型の等価比較
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9431#CommentId13397
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
ユニ
 (社会人)
投稿日時
2009/11/4 07:44:56
String型の挙動について勉強しているのですが等価比較で「なぜ?」と思っていることがあります。
例1
Dim x As String = "1"
Dim y As String = "1"
If x is y Then
MsgBox("等価")
End If
例2
Dim x As String = 1
Dim y As String = "1"
If x is y Then
MsgBox("等価")
End If
上記の例ではis演算子を使用して参照の等価を調べています。
結果は例1は"等価"とメッセージが表示されます。
例2はメッセージは表示されません。
ここで疑問があります。is演算子は参照の等価を調べるはずです。
なのに例1では値の等価を調べているように思われます。
例2に関してはなぜこのような挙動をとるのか検討もつきません。
値の等価を調べているならメッセージが表示されるはずです。
なのに""をはずすと等価ではないということなのでしょうか。
ちなみにEqualsメソッドで同様のことを試しましたが
結果は例1、例2ともにメッセージが表示されました。
この結果はStringクラスがEqualsメソッドをオーバーライドして
おり、値の等価を調べていると理解できます。
例1、例2に関して皆さんの意見をお聞きしたいです。
宜しくお願いします。m(_ _)m