Хорошо, я наткнулся на это в некотором коде, который только что начал поддерживать сотрудник. Я никогда не делал ничего подобного и не хотел, но я был поражен тем, что компилятор не отметил это как ошибку.C# проверка типа индекса массива
В принципе вы можете увидеть «странное» поведение с этой небольшой фрагмент кода:
array[3/4] = 3;
Это допускается, даже если 3/4, я думаю, вернется в два раза. Если изменить его на:
array[3.0/4] = 3;
Вы получаете ошибку компилятора.
Я предполагаю, что первый не создает ошибку компилятора, потому что он выполняет целочисленное деление и возвращает целое число.
Надеюсь, вы измените этот код. (Я предполагаю, что исходный код использует переменные, а не жестко закодированные 3/4.) Это приглашение для ошибок. Мне жаль, что я не увижу этого. – Eli
Исходный код был на самом деле этот массив [variable * 3/4], и он сделал то, что требовалось, но мне это не нравится, и я бы никогда не закодировал его сам. –