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