私は維持しなければならない大規模なクラシックASPアプリを持っていますが、短絡評価機能の欠如に何度も悩まされています。たとえば、VBScriptでは次のことを回避できません。
if not isNull(Rs("myField")) and Rs("myField") <> 0 then
...
... Rs( "myField")がnullの場合、2番目の条件でnullを0と比較してエラーが発生するため、通常は代わりにこれを実行することになります。
dim myField
if isNull(Rs("myField")) then
myField = 0
else
myField = Rs("myField")
end if
if myField <> 0 then
...
明らかに、冗長性はかなりぞっとします。この大規模なコードベースを見てみると、私が見つけた最善の回避策は、元のプログラマーが書いたTernaryOpと呼ばれる関数を使用することです。これは、基本的に三項演算子のような機能を移植しますが、それでも一時変数を使用し続けます。よりフル機能の言語で必要です。もっと良い方法はありますか?短絡が実際にVBScriptに存在するいくつかの極秘の方法?