C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 15 を表示中)
■5554 / )  Re[2]: CTypeの第2引数 "Object (As Type)"
□投稿者/ まんぼう (5回)-(2007/07/18(Wed) 10:19:02)
2007/07/18(Wed) 10:27:00 編集(投稿者)
2007/07/18(Wed) 10:26:48 編集(投稿者)

> If Not row(column.ToString, DataRowVersion.Current).Equals(row(column.ToString, DataRowVersion.Original)) Then
>
> のようにEqualsメソッドで等値比較を行えばよいかと思います。

Equalsでできました。
ちなみに勉強のためMSDNでObject.Equalsを調べたことを整理すると、(即席です)

・Isは参照が同じかどうかを比較する。
・Equalsも規定では参照が同じか比較するが、オーバーライドすることで値が同じかどうかを比較することができる。
・DataColumn.Equalsはオーバーライドされており、値の比較を行う。
・従って、column(As DataColumn)変数のメソッドEqualsを使えばColumnがどんな型であっても値の比較を行ってくれる。
・このケースではCTypeよりもEqualsの方が用途にぴったり当てはまる。

ということが分かりました。

(だから、Ctypeの第2引数には決め打ち方法しか用意されていない?)

> DataColumnのDataTypeプロパティで型は判断できないでしょうか?
> #動作未検証。
やってみると、同様のコンパイルエラーが出ました。(型が定義されていません)
CTypeの方法をもう少し調べてみます。

ともあれ、まどかさん、よねKENさんありがとうございます。

#訂正
オーバーライド→オーバーロード(;_;

返信 編集キー/


管理者用

- Child Tree -