0

ASPクラシックのVBScriptには、「int」関数が含まれています。(数値は-∞に丸められます。)過度に「賢い」コーダーが「int」という名前のグローバル変数を作成したとします。元の機能を利用する方法はありますか?私はスコーピングと危険な幹部を使ってあらゆる種類の回避策を試しましたが、サイコロはありません。それは不可能だと思いますが、私よりも誰かに知ってもらいたいと思っています。

編集:回答ありがとうございます。すべての質問があるので、「Int」と呼ばれるグローバル変数(残念ながら、vbscriptでは大文字と小文字は区別されません)は、JavaのIntegerに似たクラスのファクトリです。デフォルトのプロパティは、基本的に1つの引数のコンストラクターです。つまり、「Int(42)」は、42を保持する新しいIntClassオブジェクトを生成します。IntClassのデフォルトのプロパティは、単純に生の数値を返します。

作成者は、適切な名前空間と静的メソッドの欠如を回避しようとしていましたが、ソリューションは実際にはかなりシームレスです。intが期待される場所にIntClassを渡すと、デフォルトのプロパティが自動的にトリガーされます。最後に残っているシームにパッチを適用しようとしています。「int」を呼び出す外部コードは正しく丸められません(コンストラクターがCLngを使用しているため)。

4

3 に答える 3

3

私が知っていることではありませんが、getrefはビルドインではなくカスタム関数でのみ機能します。カスタムの「int」関数の名前を変更し、このカスタム関数へのすべての参照を更新することをお勧めします。検索機能のビジュアルスタジオ(エクスプレス)またはその他の好みのツールを使用できます。多くの仕事をするべきではありません。

于 2009-10-29T09:40:29.790 に答える
0

CIntまたは、代わりに使用できますInt

response.write trim(cint(3.14)) + "<br>"

間違い!! NobodyManのコメントを見る

于 2009-10-29T17:09:19.877 に答える
0

関数名や変数に予約語が許可されるとは思いませんでした。

ダンカンソンの権利。苦労してintの名前を変更します。これだけではなく、もっと悪いことが起こっている可能性があります。

(なぜ誰かがintという名前のグローバル変数を作成するのでしょうか...それはいくつかの考えが必要になります)

于 2009-10-29T17:18:34.683 に答える