Принятое решение не является полным, так как вы можете ввести несколько «.», например 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>
В компиляции отладки, Assert
берет в булевом условии в качестве параметра и показывает ошибочное диалоговое окно, если условие является ложью. Программа продолжается без любого прерывания, если условие верно.
, Если Вы компилируете в Выпуске, весь Debug.Assert
, автоматически не учтены.
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 ухудшили производительность системы.
Утверждайте позволяет Вам утверждать, что условие (сообщение или пред) применяется в Вашем коде. Это - способ зарегистрировать Ваши намерения и иметь отладчик, сообщают Вам с диалоговым окном, если Ваше намерение не встречено.
В отличие от точки останова, Утверждение идет с Вашим кодом и может использоваться для добавления дополнительной детали о намерении.
Утверждайте также дает Вам другую возможность хихикать в навыках проектирования UI Microsoft. Я имею в виду: диалоговое окно с тремя кнопками Abort, Повторной попыткой, Игнорирует, и объяснение того, как интерпретировать их в строке заголовка!
Необходимо использовать его в течение многих времен, когда Вы не хотите должными быть устанавливать контрольные точки каждую небольшую строку кода для проверки переменных, но Вы действительно хотите получить своего рода обратную связь, если определенные ситуации присутствуют, например:
Debug.Assert(someObject != null, "someObject is null! this could totally be a bug!");
Утверждайте может помочь Вам дать отдельное поведение обмена сообщениями между тестированием и выпуском. Например,
Debug.Assert(x > 2)
только инициирует повреждение, если Вы выполните сборку "отладки", не сборку конечных версий. Существует полный пример этого поведения здесь
Путем я думаю о нем, Отладка. Утверждайте способ установить контракт о том, как метод, как предполагается, называют, фокусируясь на специфических особенностях о значениях параметра (вместо просто типа). Например, если Вы, как предполагается, не отправляете пустой указатель во втором параметре, Вы добавляете Утверждение вокруг того параметра, чтобы сказать потребителю не делать это.
Это препятствует тому, чтобы кто-то использовал Ваш код глупым способом. Но это также признает, что глупый способ пойти до производства и не дать противное сообщение клиенту (принимающий Вас создают Сборку конечных версий).