Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csPmScMov 185 of 436 menu
◀ ▶

Изменение внешней переменной в C#

Число, переданное параметром, копируется. Изменение параметра не меняет переменную снаружи:

void Set(int bbb) { bbb = 2; } int aaa = 1; Set(aaa); Console.WriteLine(aaa); // prints 1

Строка в параметре тоже передается как значение для присваивания параметру. Новая строка внутри функции не подменяет внешнюю переменную:

void Set(string text) { text = "b"; } string line = "a"; Set(line); Console.WriteLine(line); // prints a

Локальная функция без параметра может изменить переменную снаружи: внутри функции имя ссылается на внешнюю переменную программы. Так работает захват внешней локальной переменной локальной функцией:

int num = 1; void Change() { num = 2; } Change(); Console.WriteLine(num); // prints 2

Захват не создает вторую переменную с тем же именем. Функция работает с той же num, что объявлена снаружи:

int num = 1; void Change() { num = 2; Console.WriteLine(num); // prints 2 } Change(); Console.WriteLine(num); // prints 2

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

void Set(string text) { text = "b"; } string line = "a"; Set(line); Console.WriteLine(line);

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

int score = 10; void AddFive() { score = score + 5; } AddFive(); Console.WriteLine(score);
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить