Программа на C# имеет блочную структуру. Каждый блок заключается в фигурные скобки{}. Блоки могут быть вложены друг в друга, а могут быть независимы друг от друга.
Объявления переменных разрешается помещать внутри любого блока. Переменные, описанные внутри метода класса, называются локальными переменными.
Важнейшими понятиями в C# являются области видимости, в частности, области видимости переменной. Эта область начинается в точке объявления переменной и распространяется до конца блока, в котором она описана. Переменная, как правило, видна в блоках внутренних по отношению к блоку ее объявления и не видна во внешних блоках, которые находятся за пределами видимости переменной.
Имя переменной в области ее видимости должно быть уникальным. Этот факт означает, что во вложенном блоке нельзя объявить переменную с те же самым именем, которое объявлено в охватывающем его блоке.
Подобное положение отличает язык C# от других языков программирования, в которых отсутствует такое ограничение, и введено в язык C# для того, чтобы исключить связанные с такой ситуацией ошибки.
При выходе из области видимости значение переменной теряется. При повторном входе в блок (область видимости) переменная создается и инициализируется заново.
Пример:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int p=1,n;
Console.Write("Enter n ");
n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
p = p * i;
Console.WriteLine("p="+ p);
}
}
}
Рассмотрим приведенный пример. В программе метод Main содержит объявления переменных:
int p=1,n;
Обе переменные имеют тип int, причем переменная р инициализирована значением равным 1. Область видимости этих переменных – весь метод Main. Пременная i объявлена в заголовке цикла for, является его параметром, ей в заголовке цикла присвоено начальное значение, равное 1. Область видимости этой переменной ограничивается циклом.