これらの2つの機能の違いは何かアドバイスできますか?CBool対VB.netのSystem.Convert.ToBoolean
前者はVB.netの機能ですが、後者はCLSに準拠していないと私は理解していますか?だから、私は少し混乱しています。
また、それらを使用するためのベストプラクティスは何ですか?事前に
多くのおかげで、
キース
これらの2つの機能の違いは何かアドバイスできますか?CBool対VB.netのSystem.Convert.ToBoolean
前者はVB.netの機能ですが、後者はCLSに準拠していないと私は理解していますか?だから、私は少し混乱しています。
また、それらを使用するためのベストプラクティスは何ですか?事前に
多くのおかげで、
キース
大きな違いはCBool
がConvert.ToBoolean()
が引数を取るよう式を評価していることです。明らかに、かっこを使用して.ToString()
を実行することで簡単に回避できますが、CBool
は使いやすさの1つで、VB.NET
の実装が好きです。
理由全体として、CBool
は安全でない可能性があります。つまり、式のエラーは実行時まで捕らえられません。まるでConvert.ToBoolean()
に同じ式を指定したとしても、引数フィールドには無効であるため、構文パーサは適合をスローし、問題を修正するまでビルド/実行できないようにします。
こんにちは。 私は理解していると思います。 .ToBooleanはコンパイル時に引数の型チェックをより厳密に行いますが、CBoolはコンパイル時の式に対してより厳密にチェックしますか?したがって、常にCBoolの代わりに.ToBooleanを使用するのは良い考えです。おかげさまで キース –
@KeithHoward右。 CBoolは '1> 0'のような式をとることができますが、' .ToBoolean'は引数が必要です。明らかにその例ではブール式になりますが、式にはそうしない可能性があります。 –
これで、.ToBooleanはより厳密です。私はこれを将来使用します。どうもありがとう。 :) –
機能的には同じです。 'CBool'はレガシーVB関数で、' Convert.ToBoolean() 'はNET形式です。 VB関連の記事は、従来のVBフォームが「Visual Basicコードとの最適な対話」を提供していると伝えています。しかし、その中には限られたものがあります。「CDate」と「CDec」は現在の文化だけで動作することができます。 'Cint'は便利なことがありますが、残りの部分はそれほど複雑ではありません。 – Plutonix