Что делает метод Assert ()? Это все еще полезно?

Принятое решение не является полным, так как вы можете ввести несколько «.», например 24 .... 22..22. с некоторыми небольшими модификациями он будет работать в соответствии с назначением:

<HTML><HEAD>
<script type="text/javascript">

 function isNumberKey(txt, evt) {

    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode == 46) {
        //Check if the text already contains the . character
        if (txt.value.indexOf('.') === -1) {
            return true;
        } else {
            return false;
        }
    } else {
        if (charCode > 31
             && (charCode < 48 || charCode > 57))
            return false;
    }
    return true;
}

</SCRIPT></HEAD><BODY>
<input type="text" onkeypress="return isNumberKey(this, event);" /> </BODY></HTML>
143
задан PeterVermont 26 August 2016 в 16:10
поделиться

7 ответов

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

, Если Вы компилируете в Выпуске, весь Debug.Assert , автоматически не учтены.

183
ответ дан Bakudan 26 August 2016 в 16:10
поделиться

От Код, Завершенный

8 Безопасного программирования

8.2 Утверждений

, утверждение является кодом that’s используемый во время development— обычно стандартная программа или macro—, который позволяет программе проверяться, когда это работает. Когда утверждение верно, который означает, что все работает как ожидалось. Когда it’s ложь, которая означает его, обнаружила неожиданную ошибку в коде. Например, если система предполагает, что файл потребительской информации никогда не будет иметь больше чем 50 000 записей, программа могла бы содержать утверждение, что количество записей меньше чем или равно 50 000. Пока количество записей меньше чем или равно 50 000, утверждение будет тихо. Если это встретится больше чем с 50 000 записей, однако, это будет громко “assert”, что существует ошибка в программе.

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

утверждение обычно берет два аргумента: булево выражение, которое описывает предположение that’s предполагаемый быть верным и сообщение, чтобы отобразиться если это isn’t.

(†¦)

Обычно, Вы don’t хотят, чтобы пользователи видели сообщения утверждения в производственном коде; утверждения, прежде всего, для использования во время разработки и обслуживания. Утверждения обычно компилируются в код во время разработки и компилируются из кода для производства. Во время разработки утверждения спугивают противоречащие предположения, неожиданные условия, плохие значения передали стандартным программам и так далее. Во время производства они компилируются из кода так, чтобы утверждения don’t ухудшили производительность системы.

90
ответ дан shrawan 26 August 2016 в 16:10
поделиться

Утверждайте позволяет Вам утверждать, что условие (сообщение или пред) применяется в Вашем коде. Это - способ зарегистрировать Ваши намерения и иметь отладчик, сообщают Вам с диалоговым окном, если Ваше намерение не встречено.

В отличие от точки останова, Утверждение идет с Вашим кодом и может использоваться для добавления дополнительной детали о намерении.

9
ответ дан Jeff Yates 26 August 2016 в 16:10
поделиться

Утверждайте также дает Вам другую возможность хихикать в навыках проектирования UI Microsoft. Я имею в виду: диалоговое окно с тремя кнопками Abort, Повторной попыткой, Игнорирует, и объяснение того, как интерпретировать их в строке заголовка!

12
ответ дан Joe 26 August 2016 в 16:10
поделиться

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

Debug.Assert(someObject != null, "someObject is null! this could totally be a bug!");
37
ответ дан thelsdj 26 August 2016 в 16:10
поделиться

Утверждайте может помочь Вам дать отдельное поведение обмена сообщениями между тестированием и выпуском. Например,

Debug.Assert(x > 2)

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

9
ответ дан Ryan 26 August 2016 в 16:10
поделиться

Путем я думаю о нем, Отладка. Утверждайте способ установить контракт о том, как метод, как предполагается, называют, фокусируясь на специфических особенностях о значениях параметра (вместо просто типа). Например, если Вы, как предполагается, не отправляете пустой указатель во втором параметре, Вы добавляете Утверждение вокруг того параметра, чтобы сказать потребителю не делать это.

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

3
ответ дан Flory 26 August 2016 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: