В этой части мы кратко познакомимся с переменными в С#.

Обьявление переменных в C# выглядит так:

типПеременной имяПеременной;

К примеру:

int myVariable;

Этот код обьявляет переменную типа int под названием myVariable. Но Вы не сможете использовать эту переменную до тех пор, пока Вы не присвоите ей какое-то значение:

myVariable = 5; (= оператор присваивания)

Переменную можно обьявить и инициализировать одновременно:

int myVariable = 5;

Такой синтаксис идентичен с синтаксисом C++. Синтаксис обьявления переменных в C# не зависит от типа обьявляемой переменной. Память для переменной выделяется уже при обьявлении, это нужно учитывать. Поэтому такой код не будет компилироваться:
static void Main(string[] args)
{
int i;
Console.WriteLine(i);
return;
}

Компилятор выдаст ошибку: Use of unassigned local variable 'i',
(использование неприсвоенной локальной переменной 'i');
Это вполне логично, потому что перед использованием переменной нужно присвоить ей какое-то значение.

В C# используется два метода обеспечения гарантии инициализации переменных:

-переменные, которые являются полями класса или структуры, если не инициализированы явно, то по умолчанию обнуляются в момент создания;

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

Область видимости переменных
Область видимости переменной - это та часть кода, в пределах которого доступна данная переменная. Область определяется такими правилами:
-Поле (field), известное также как переменная-член класса, находится в области видимости до тех пор, пока в этой области находится содержащий поле класс;
-Локальная переменная (local variable) - находится в области видимости до конца блока операторов или метода в котором она обьявлена;
-Локальная переменная, которая обьявлена в операторах for, while или подобных им, видна в пределах тела цикла.

Типы переменных
В C# существует 2 типа переменных:
-типы значений
-ссылочные типы

Спецификация языка C# говорит , что в этом языке есть переменные таких типов:

--Типы значений:

Простые типы

Целочисленные типы: sbyte, short, int, long, byte, ushort, uint, ulong;
Символьный тип: char;
С плавающей запятой: float, double;
Десятичный тип: decimal;
Булевский тип(Логический): bool.

Перечисления

Типы, которые определяются пользователем и имеют вид:
enum E {...}

Структуры

Типы, которые определяются пользователем и имеют вид:
struct S {...}

Нулевые типы

Расширения других типов с null-значениями.

--Ссылочные типы:

Классы

Базовый класс всех других типов: object
Строка символов: string
Типы, которые определяются пользователем и имеют вид:
class C {...}

Интерфейсы

Типы, которые определяются пользователем и имеют вид:
interface I {...}

Массивы

простые и многомерные, например int[] и int[,]

Делегаты

Делегаты, которые определяются пользователем и имеют вид:
int D(...)

Подробно я опишу каждый тип в следующих статьях.

© Hintax