Читаем Разработка пользовательского интерфейса на основе технологии Windows Presentation Foundation полностью

Недочет. При нажатии на кнопку «=» между полями ввода выводится знак равенства, что не имеет смысла. Этот недочет будет исправлен в следующем пункте.

3.2. Организация вычислений

Определите обработчик события Click для кнопки button5:


screen_image_53_371_75


screen_image_53_399_75


screen_image_54_57_59


Результат. При нажатии кнопки «=» указанное выражение вычисляется и отображается на экране (в метке label2). В качестве операнда при любой операции можно указывать число 0; при делении на 0 результатом является «–бесконечность» или «бесконечность» (в зависимости от знака первого операнда) или «NaN» («не число»), если первый операнд также равен 0. В случае если поля ввода содержат текст, который нельзя преобразовать в вещественное число, то выводится результат «ERROR».

Комментарии

1. При выполнении операций над числами типа double ошибок времени выполнения не возникает, однако результатом может быть одно из «особых» значений: double.NegativeInfinity (–), double.PositiveInfinity (+) и double.NaN («не число»).

2. Для преобразования строки в число можно использовать методы Parse и TryParse соответствующего числового типа. Метод TryParse следует применять, если возможна ситуация, когда требуемое преобразование окончится неудачей (при использовании метода Parse такая ситуация приведет к возбуждению исключения, для обработки которого потребуется писать дополнительный код; кроме того, обработка исключения требует существенно больше времени, чем обычная проверка с помощью условного оператора).

3. В методе button5_Click демонстрируются важные особенности, связанные с типом string. Во-первых, тип string можно использовать в качестве переключателя в операторе switch, во-вторых, для типа string определена операция +, в которой в качестве другого операнда (причем не обязательно второго) можно указывать выражение любого типа; при этом данное выражение автоматически преобразуется к типу string с помощью метода ToString, определенного для любого типа платформы .NET.

Ошибка. Отмеченный в конце предыдущего пункта недочет теперь приводит к неправильной работе программы. После нажатия на кнопку «=» символ «=» указывается между полями ввода; таким образом, информация о выбранной операции стирается, и при последующем нажатии кнопки «=» всегда выводится нулевой результат (для восстановления нормальной работы надо повторно выбрать требуемую операцию, нажав на связанную с ней кнопку). Обратите внимание на то, что в данном варианте программы при наступлении события Click для кнопки «=» выполняются два обработчика: button5_Click, который связан непосредственно с этой кнопкой, и button1_Click, связанный с ее родительским компонентом StackPanel. Поскольку событие Click является пузырьковым, вначале выполняется обработчик button5_Click.

Исправление. В начало метода button5_Click добавьте оператор


screen_image_55_170_75
Перейти на страницу:

Похожие книги

Теория государства и права
Теория государства и права

Учебник, написанный в соответствии с курсом «Теория государства и права» для юридических РІСѓР·ов, качественно отличается РѕС' выходивших ранее книг по этой дисциплине. Сохраняя все то ценное, что наработано в теоретико-правовой мысли за предыдущие РіРѕРґС‹, автор вместе с тем решительно отходит РѕС' вульгаризированных догм и методов, существенно обновляет и переосмысливает РІРѕРїСЂРѕСЃС‹ возникновения, развития и функционирования государства и права.Книга, посвященная современной теории государства и права, содержит СЂСЏРґ принципиально новых тем. Впервые на высоком теоретическом СѓСЂРѕРІРЅРµ осмыслены и изложены РІРѕРїСЂРѕСЃС‹ новых государственно-правовых процессов современного СЂРѕСЃСЃРёР№ского общества. Дается характеристика гражданского общества в его соотношении с правом и государством.Для студентов, аспирантов, преподавателей и научных работников юридических РІСѓР·ов.Р

Алла Робертовна Швандерова , Анатолий Борисович Венгеров , Валерий Кулиевич Цечоев , Михаил Борисович Смоленский , Сергей Сергеевич Алексеев

Детская образовательная литература / Государство и право / Юриспруденция / Учебники и пособия / Прочая научная литература / Образование и наука
История Беларуси. С древнейших времен до 2013 г.
История Беларуси. С древнейших времен до 2013 г.

Представлена история Беларуси с древнейших времен до наших дней. Освещаются проблемы этногенеза (происхождения) белорусов, формирования белорусской народности и нации, становления белорусской государственности, социально-экономического, политического и культурного развития белорусских земель в составе Древнерусского государства, Великого Княжества Литовского, Речи Посполитой, Российской империи. Особое внимание уделяется истории советского периода, советской модели модернизации общества, проблемам развития суверенной Республики Беларусь.Первое издание вышло в 2010 г.Для студентов и преподавателей высших учебных заведений, а также учащихся средних специальных и профессионально-технических учебных заведений, лицеев, гимназий, всех, кто интересуется историей Отечества.

Евгений Константинови Новик , Игорь Леонидович Качалов , Наталия Евгеньевна Новик

Детская образовательная литература / История / Учебники и пособия ВУЗов / Книги Для Детей / Образование и наука