2016-04-12 8 views
0

これらの2つの機能の違いは何かアドバイスできますか?CBool​​対VB.netのSystem.Convert.ToBoolean

前者はVB.netの機能ですが、後者はCLSに準拠していないと私は理解していますか?だから、私は少し混乱しています。

また、それらを使用するためのベストプラクティスは何ですか?事前に

多くのおかげで、

キース

+0

機能的には同じです。 'CBool​​'はレガシーVB関数で、' Convert.ToBoolean() 'はNET形式です。 VB関連の記事は、従来のVBフォームが「Visual Basicコードとの最適な対話」を提供していると伝えています。しかし、その中には限られたものがあります。「CDate」と「CDec」は現在の文化だけで動作することができます。 'Cint'は便利なことがありますが、残りの部分はそれほど複雑ではありません。 – Plutonix

答えて

1

大きな違いはCBoolConvert.ToBoolean()が引数を取るよう式を評価していることです。明らかに、かっこを使用して.ToString()を実行することで簡単に回避できますが、CBool使いやすさの1つで、VB.NETの実装が好きです。

理由全体として、CBoolは安全でない可能性があります。つまり、式のエラーは実行時まで捕らえられません。まるでConvert.ToBoolean()に同じ式を指定したとしても、引数フィールドには無効であるため、構文パーサは適合をスローし、問題を修正するまでビルド/実行できないようにします。

+0

こんにちは。 私は理解していると思います。 .ToBooleanはコンパイル時に引数の型チェックをより厳密に行いますが、CBool​​はコンパイル時の式に対してより厳密にチェックしますか?したがって、常にCBool​​の代わりに.ToBooleanを使用するのは良い考えです。おかげさまで キース –

+0

@KeithHoward右。 CBool​​は '1> 0'のような式をとることができますが、' .ToBoolean'は引数が必要です。明らかにその例ではブール式になりますが、式にはそうしない可能性があります。 –

+0

これで、.ToBooleanはより厳密です。私はこれを将来使用します。どうもありがとう。 :) –