Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_200309.doc
Скачиваний:
40
Добавлен:
24.12.2018
Размер:
4.38 Mб
Скачать

Рекомендации по использованию оператора switch

Ниже приведены основные рекомендации по использованию оператора switch.

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

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

Существует несколько возможных схем:

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

  2. Схема в алфавитном или числовом порядке — для упрощения навигации по меткам жела­тельно расположить их в алфавитном или числовом порядке.

Использование раздела default с той же целью, что и выражение по умолчанию в операторе if-else с несколькими ветвями. Обратимся к двум основным правилам, обсуждавшимся при рассмотрении операто­ра if-else с несколькими ветвями, о выражении по умолчанию, следующем за последним условием else. Они применимы и к разделу default оператора switch:

  1. Раздел default следует использовать только для тех действий, которые должны вы­полняться по умолчанию.

  2. Если он не используется, в нем следует обрабатывать ошибки.

Область видимости переменных

В большинстве программ, рассмотренных ранее, для обозначения контекста класса или метода, в частности, метода Main(), использовались блочные кон­струкции с фигурными скобками.

С введением операторов if-else (которые могут содержать составные операторы) по­явилась возможность создавать программы, включающие вложенные блоки кода. Здесь важно представить новую концепцию, называемую областью видимости. Она определя­ет, какие сегменты (а значит, и переменные) исходного кода видны (и, таким образом, доступны) из других его частей. Область видимости — это технический термин, исполь­зуемый для неформального словесного контекста.

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

Две основных области видимости в С # блок класса и блок метода, как показано на рисунке.

Хотя различие между ними, скорее, искусственное, область определения класса имеет несколько характеристик, отсутствующих в области определения метода. Например, операторы if-else можно разместить только в области определения метода. Для создания блока внутри блока совсем не обязательно использовать выражения на­подобие if-else. Новый блок (а значит, и новую область видимости) можно создать, просто вставив пару фигурных скобок. Когда блок В находится внутри другого блока А, область видимости первого называется внутренней, а второго — внешней. Эти термины несут, очевидно, относительный смысл, поскольку область блока А является внутренней по отношению к области блока Main(). Блоки, созданные добавлением фигурных скобок, не имеют явных имен, и ссылаться на них нельзя.

Переменная, объявленная внутри метода, называется локальной.

Такие переменные недоступны за пределами блоков, в которых они объявлены. Общее правило гласит, что переменные, объявленные внутри блока, доступны толь­ко в нем (это относится и к переменным других внутренних блоков, вложенных в него) и только после объявления переменной. Переменную можно объявить в любом месте блока.

Действие этих правил иллюстрирует следующий рисунок. Здесь показаны два блока кода: один принадлежит методу Main(), а другой (размешенный внутри Main() — оператору if). По­скольку переменная distance объявлена в начале внешней области видимости, она дос­тупна во всем блоке Main(), включая и код внутреннего блока оператора if. Перемен­ная mass объявлена ближе к окончанию метода Main(). поэтому она доступна в относительно небольшом сегменте кода, между ее объявлением и окончанием области видимости Main(). Переменная energy объявлена внутри блока if и доступна лишь внутри него.

Объявление переменной во внутренней области с именем, идентичным имени пере­менной во внешней, является ошибкой. Причина заключается в том, что это придавало бы иное значение имени переменной из внешней области.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]