В этой части мы кратко познакомимся с переменными в С#.
Обьявление переменных в 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

