Переменные

Переменные – это именованные области памяти в которых хранятся данные.

В зависимости от типа переменной, данные могут интерпретироваться по разному.

Т.к. C# язык со строгой типизацией, то все переменные должны быть строго определенного типа. Объявление переменной в общем случае в C# выглядит следующим образом:

ТипПеременной Имя_переменной;

Так например целочисленная переменная может быть объявлена следующим образом:

int i;

В этом примере объявляется целочисленная переменная i, которая имеет тип данных – int.

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

using System;

class Program {
    static void Main() {
        int i; // Объявление переменной i
        i = 10; // Инициализация переменной i значением 10

        int y = 5; // Объявление переменной y с последующей инициализацией значением 5
    }
}

Несколько переменных одного типа могут быть объявлены и инициализированы в одной строке:

using System;

class Program {
    static void Main() {
        int a, b, c; // Объявление нескольких переменных типа int
        int d = 5, e = 6, f = 7; // Объявление с инициализацией
        int g, j = 10, k; // Объявление нескольких переменных, при этом инициализируется только одна
    }
}

Переменные могут быть инициализированы значением другой переменной, если это значение возможно вычислить на момент инициализации:

using System;

class Program {
    static void Main() {
        int a = 5;

        // Инициализация b значением a
        int b = a; // Допустимо т.к. значение a уже известно

        int c;
        int d = c; // Недопустимо т.к. c еще неинициализирована

        c = 10;
    }
}

Переменные в C# не могут объявляться вне класса. Переменные, объявленные внутри методов и свойств класса называются локальными переменными. Переменные также могут объявляться вне каких=либо методов и свойств, такие переменные называются полями класса. Ниже показан пример использования локальных переменных и полей класса:

using System;

class Program {
    int y; // Поле класса
    
    static void Main() {
        int i; // Локальная переменная i

        Console.ReadKey();
    }
}

Поля класса будут рассматриваться позже, а здесь мы будем рассматривать только локальные переменные.

Локальные переменные должны принадлежать какому-либо блоку класса. Это могут быть методы, свойства, либо блоки внутри методов или свойств, например, условные конструкции или циклы.

Переменные могут иметь одинаковые имена, если они объявляются в разных методах или свойствах. Недопустимо объявление переменных с одинаковыми именами внутри одного и того же метода или свойства:

using System;

class Program {
    static void Main() {
        int i; // Локальная переменная i

        // Условный блок внутри метода Main()
        if ( true ) {            
            int i = 5; // Недопустимо,
            // т.к. в методе Main() 
            // уже есть переменная с таким именем
        }

        Console.ReadKey();
    }

    // Еще один метод
    void AnotherMethod() {
        int i = 10; // Допустимо, 
        // т.к. теперь i объявлена внутри другого метода
    }
}

Область видимости переменной ограничена блоком в котором она объявлена. Поэтому можно объявлять переменные с одинаковыми именами в разных блоках, если они не вложены друг в друга. Однако за пределами блока, в котором объявлена переменная, она становится недоступной:

using System;

class Program {
    static void Main() {
        // Условный блок внутри метода Main()
        if ( true ) {            
            int i = 5;
        }

        i = 6; // Ошибка, i недоступна вне блока if

        if ( true ) {            
            int i = 6; // Так можно, т.к i здесь уже недоступна
            
            if ( true ) {
                int i = 10; // Нельзя, i объявлена во включающем блоке
            }
        }

        Console.ReadKey();
    }
}
avatar
5000
0 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
0 Авторы комментариев
Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о