- - PR -
どんな型でも受け付けて比較できる方法はありますか?
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-05 13:30
クライエントIDが云々という当初の目的からは離れたのかな。
string test1 = "test"; //(1) test1 = "change"; //(2) (1)の時のtest1と(2)のときのtest1は異なる参照になりますね。
o = new string(new char[] { '1' }); o2 = new string(new char[] { '1' }); とすれば o == o2 はfalseです。 ん、つまるところ型がobjectならReferenceEqualsでも==でも同じなのか。 こんなのもありますし、気になるならマニュアルをくまなく読みあさるといいと思います。 ここまで考えたことはなかったですね。objectにint突っ込んだりとか基本的にしませんから。 | ||||||||||||
|
投稿日時: 2006-08-05 14:38
その通りです。== がオーバーロードされていませんから。 考え方としては、operator==(object o1, object o2) の定義を使うと言った方が簡単かもしれませんね。operator==(object o1, object o2) は参照比較するように定義されていると。
こんな例もあります。
※キーワード ボクシング _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-08-06 06:27
あれ?上げたつもりで、上げてなかった。
ちょっと違います。セッターを定義していません。よって、実装側がここで、型のチェックをできます。^H^H チェックをするように制約をかけます。 また、IComparable も実装していないので、「比較の仕方」を定義しなければなりません。 どのような型にするか、制限をかけつつ、自由を与えています。 |
«前のページへ
1|2|3