Программирование >>  Обработка исключительных ситуаций 

1 ... 9 10 11 [ 12 ] 13 14 15 ... 142


Так называемая область действия переменной, то есть область программы, г, можно использовать переменную, начинается в точке ее описания и длит< до конца блока, внутри которого она описана. Блок - это код, заключеннь в фигурные скобки. Основное назначение блока - группировка операторо В С# любая переменная описана внутри какого-либо блока: класса, метода ш блока внутри метода.

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

class X {

int А; int В;

начало описания класса X

поле А класса X поле В класса X

void Y() {

int С; int А;

метод Y класса

локальная переменная С, область действия - метод Y локальная переменная А (НЕ конфликтует с полем А)

int D; int А:

С = В:

вложенный блок 1

локальная переменная D, область действия - этот блок недопустимо! Ошибка компиляции, конфликт с локальной переменной А

присваивание переменной С поля В класса X (**)

this.А: присваивание переменной С поля А класса X (***)

конец блока 1

int D;

вложенный блок 2

локальная переменная D, область действия

этот блок

конец блока 2

конец описания метода Y класса

конец описания класса X

Давайте разберемся в этом примере. В нем описан класс X, содержащий TJ элемента: поле А, поле В и метод Y. Непосредственно внутри метода Y заданы д. локальные переменные - С и А.

Внутри метода класса можно описывать переменную с именем, совпадаюнн с полем класса, потому что существует способ доступа к полю класса с щью ключевого слова this (это иллюстрирует строка, отмеченная символами Таким образом, локальная переменная А не закрывает поле А класса X, а вот п пытка описать во вложенном блоке другую локальную переменную с тем именем окончится неудачей (эти строки закомментированы).

Если внутри метода нет локальных переменных, совпадающих с полями класс к этим полям можно обратиться в методе непосредственно (см. строку, помеченн}



Именованные константы

символами **) . Две переменные с именем D не конфликтуют между собой, поскольку блоки, в которых они описаны, не вложены один в другой.

СОВЕТ-

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

В листинге 3.1 приведен пример программы, в которой описываются и выводятся на экран локальные переменные.

Листинг 3.1 . Описание переменных

using System;

namespace ConsoleAppl icationl { class Classl

{ static void MainO

double

decimal

string

4.12; 600m; Вася ;

Console.Write( Console.WriteC Console.Write( Console.Write(

) Consol е. Writel ine( i )

) Consolе.WriteLine( у )

) Console.Writel ine( d )

) Console.Writel ine( s )

Как вы догадались, метод Write делает то же самое, что и WriteLine, но не переводит строку. Более удобные способы вывода рассмотрены в конце этой главы в разделе Простейший ввод-вывод (см. с. 59).

ВНИМАНИ Е -.

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

Именованные константы

Можно запретить изменять значение переменной, задав при ее описании ключевое слово const, например:

const int b = const float x

0:1, у

0.If:

const распространяется на обе переменные



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

ПРИМЕЧАНИЕ-

Улучшение читабельности происходит только при осмысленном выборе имен кон стант. В хорошо написанной программе вообще не должно встречаться иных 4ncej кроме 0 и 1, все остальные числа должны задаваться именованными константам] с именами, отражающими их назначение.

Именованные константы должны обязательно инициализироваться при описа нии. При инициализации можно использовать не только константу, но и выра жение - главное, чтобы оно было вычисляемым на этапе компиляции, например

const int b const int х

1. а = 100: b * а + 25:

Операции и выражения

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

Например, а + 2 - это выражение, в котором + является знаком операции, а а и 2 -операндами. Пробелы внутри знака операции, состоящей из нескольких символов, не допускаются. По количеству участвующих в одной операции операндов операции делятся на унарные, бинарные и тернарную. Операции С# приведены в табл. 3.11.

Таблица3.1. Операции С#

Категория

Знак операции

Название

Описание

Доступ к элементу

С. 105

Вызов метода или делегата

С. 108, 221

Доступ к элементу

С. 127

Постфиксный инкремент

С. 47

Постфиксный декремент

С. 47

Выделение памяти

С. 48

typeof

Получение типа

С. 280

checked

Проверяемый код

С. 46

unchecked

Непроверяемый код

С. 46

Первичные

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



1 ... 9 10 11 [ 12 ] 13 14 15 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика