私はこれをいくつかのコードで見つけました。同僚がすぐにサポートし始めました。私はこのようなことは一度もしていませんでしたが、コンパイラがエラーとしてフラグを立てなかったことに驚きました。 c#配列インデックスの型チェック
は、基本的には、この小さなスニペットで「奇妙な」行動を見ることができます:array[3/4] = 3;
これも3/4かかわらず、私が思うだろう許可され、ダブルを返します。 あなたはそれを変更する場合:
array[3.0/4] = 3;
あなたはコンパイラエラーを取得しません。
私は、整数除算を行い整数を返すため、最初のコンパイルエラーは発生しないと仮定しています。
このコードを変更していただければ幸いです。 (元のコードは変数を使用しており、ハードコーディングされた3/4ではないと仮定しています)。これはバグの招待です。私はそれを見抜くことができたらいいと思う。 – Eli
オリジナルのコードは実際にはこの配列[変数* 3/4]でしたが、必要なことはしましたが、私はそれを気に入らず、決して自分自身でそれをコード化したことはありませんでした。 –