
- •Обзор типов данных
- •Ссылочные типы и адреса
- •Объявление переменных (в любом месте в пределах класса): тип_данных список_имен;
- •Арифметические операторы
- •Операторы инкремента и декремента
- •Логические операторы
- •логические операторы
- •Для логических операторов операнды должны иметь тип bool. Результатом логических операций также являются
- •Принцип выполнения быстрых операций
- •Единственная разница между обычной и быстрой версиями операторов:
- •Приоритетность выполнения операторов
- •Символьный тип
- •Литералы
- •Целочисленные литералы представлены как числа без дробной части.
- •1. По умолчанию типом целочисленных литералов является наименьший целочисленный тип, начиная с int,
- •беззнаковый целочисленный литерал
- •4. Хотя целочисленные литералы, имеющие тип int, uint, long или ulong, могут быть
- •Управляющие символы
- •Последовательность символов и описание действия
- •Строковые литералы
- •Пример:
- •Переменные и их инициализация
- •При создании переменной создается объект данных - экземпляр ее типа,
- •Инициализация переменной
- •Примеры инициализации:
- •Область видимости и время жизни переменных
- •Область видимости может быть
- •//В программе демонстрируется возможности доступа
- •// В данном блоке видны обе переменные, x и y.
- •Внутри блока переменная может быть объявлена в любом месте,
- •!!! ВАЖНО:
- •Пример:
- •переменная y
- •Программа с попыткой объявить две переменные с одинаковыми именами ошибочна:

Область видимости может быть
вложенной.
создавая блок кода, создаете новую вложенную область видимости,
при этом внешняя область становится видимой для вложенной области –
объекты, объявленные во внешней области видимости, будут видимы для кода из внутренней области видимости,
но объекты, объявленные во внутренней области видимости, не будут видимы для кода внешней области видимости.
32

//В программе демонстрируется возможности доступа
//к переменной в зависимости от области видимости, //в которой она была объявлена.
using System;
class ScopeDemo {
public static void Main() {
int x; // Переменная x известна всему коду
//в пределах метода Main(). x = 10;
if(x == 10) { //Создается новая область видимости.
int y = 20;
//Эта переменная будет видна только в рамках
//этого блока.
33

// В данном блоке видны обе переменные, x и y.
Console.WriteLine("Видны x и y: " + x + " " + y);
x = y * 2;
}
y = 100; // Ошибка! Переменная y здесь не
видна!
//Выполняется доступ к переменной x, которая была
//объявлена в этой области видимости.
Console.WriteLine("Значение переменной x
равно: " + x);
}
}
34

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

!!! ВАЖНО:
переменные создаются при их объявлении в какой- либо области видимости (при входе в данную область)
и уничтожаются при выходе из этой области.
Переменная, объявленная в пределах метода, не будет хранить свои значения между вызовами этого метода.
Также переменная, объявленная в рамках блока, будет терять свое значение при выходе из блока.
Следовательно, время жизни переменной ограничено ее областью видимости.
Если при объявлении переменной одновременно происходит ее инициализация, то переменная будет
повторно инициализироваться каждый раз при входе в блок, в котором она объявлена.
36

Пример:
using System;
class VarInitDemo {
public static void Main() { int x;
for(x = 0; x < 3; x++) { int y = -1;
// Переменная y инициализируется каждый раз // при входе в блок.
Console.WriteLine("Значение переменной y равно: " + y);
// Всегда выводится значение -1. y = 100;
Console.WriteLine("Теперь значение переменной y равно: " + y);
}
}
}
результат выполнения программы:
Значение переменной y равно: -1
Теперь значение переменной y равно: 100 Значение переменной y равно: -1
Теперь значение переменной y равно: 100 Значение переменной y равно: -1
Теперь значение переменной y равно: 100
37

переменная y
инициализируется значением -1 каждый раз при входе во внутренний цикл for,
затем ей присваивается значение 100,
которое утрачивается при завершении цикла.
Примечание.
Между языками C# и С есть отличие в работе с областями видимости.
блоки могут быть вложенными, но переменная, объявленная во внутренней области видимости, не может иметь такое же имя, как переменная,
объявленная во внешней области видимости.
38

Программа с попыткой объявить две переменные с одинаковыми именами ошибочна:
using System;
class BadVar {
public static void Main() {
int count;
for(count = 0; count < 10; count = count+1) {
Console.WriteLine("Счет проходов цикла: " + count);
int count; // Это объявление недействительно!!!
…
}
}
}
39