Иногда очень занятно копаться в старом коде. Особенно в своём. Порой натыкаешься на гениально загадочные вещи, как-то:
[1] http://it2.php.net/manual/en/language.types.string.php см. раздел "String conversion to numbers":
if (level <= 5 && level > 4){ ... }Давайте не будем обращать внимание на количество if-else операторов, на "магические числа" и сфокусируем взгляд на проверяемых значениях в условных операторах. Этот феномен можно было бы попытаться объяснить, если код был бы написан на языке с нестрогой типизацией, например, на том же php или javascript: в диапазон (4.0; 5.0] могло попасть множество значений (даже строка "4.098" т.к. в момент сравнения она будет автоматически преобразована в число с плавающей точкой - для php [1]). Но нет же!
else
{
if (level <= 6 && level > 5) { ... }
else
if (level > 6) { ... }
};
C# является строго типизированным языком. Каждая переменная и константа имеет тип, как и каждое выражение, результатом вычисления которого является значение. Каждая сигнатура метода задает тип для каждого входного параметра и для возвращаемого значения. [MSDN]Остаётся мучиться в догадках, что за мистическая цифра могла бы находиться в целочисленном диапазоне (4; 5] кроме цифры 5. :)
[1] http://it2.php.net/manual/en/language.types.string.php см. раздел "String conversion to numbers":
When a string is evaluated in a numeric context, the resulting value and type are determined as follows.
0 коммент.:
Отправить комментарий