Узнайте, существует ли конкретная фиксация на ответвлении мерзавца

Предложение:

Объявление intArray как "интервал [] intArray" скорее тогда "возражает, что intArray" позволит компилятору забирать недопустимый бросок C#. Если Вы абсолютно не должны использовать объект, я проявил бы тот подход.

Q2 Ре, Q3:

Во времени выполнения Вы попытались перенестись, бросок в проверил блок?

От этой статьи в MSDN:

По умолчанию, выражение, которое содержит только постоянные величины, вызывает ошибку компилятора, если выражение производит значение, которое является вне диапазона целевого типа. Если выражение содержит одно или несколько непостоянных значений, компилятор не обнаруживает переполнение.

...

По умолчанию, эти непостоянные выражения не проверяются на переполнение во время выполнения также, и они не повышают водосливные исключения. Предыдущий пример отображается-2 147 483 639 как сумма двух положительных целых чисел.

Проверка переполнения может быть включена параметрами компилятора, настройкой среды или использованием проверенного ключевого слова.

, Как это говорит, можно осуществить проверку переполнения более глобально через конфигурацию среды или параметр компилятора.

В Вашем случае это, вероятно, желательно, поскольку он заставит ошибку периода выполнения быть брошенной, который гарантирует, что вероятное недопустимое неподписанное число к переполнению числа со знаком не произойдет тихо.

[Обновление] После тестирования этого кода, я нашел, что использование объявления текстового объекта вместо интервала [], кажется, обходит стандартный C#, бросая sytax, независимо от того, включен ли проверенный или нет.

, Поскольку JS заявила при использовании объекта Вы связываетесь правилами CLI, и они, по-видимому, позволяют этому происходить.

Q1 Ре:

Это связано с вышеупомянутым. Короче говоря, потому что бросок включил его, не выдает исключение (на основе текущей установки переполнения). Является ли это хорошей идеей, другой вопрос.

От MSDN:

выражение, оценивает к истинному, если обеспеченное выражение является непустым, и обеспеченный объект может быть брошен к обеспеченному типу, не заставляя исключение быть брошенным.

5
задан Jeffrey Harris 7 October 2009 в 23:07
поделиться