Локальная функция
Локальную функцию пишут внутри метода: с модификаторами доступа, как у обычного метода, но область видимости ограничена внешним методом. Объявление может стоять после вызова - компилятор находит её во всём теле. Локальная функция может обращаться к параметрам и локальным переменным внешнего метода.
Синтаксис
тип Имя(параметры)
{
// тело
}
Пример
Давайте сложим два числа локальной функцией:
using System;
class Program
{
static void Main()
{
Console.WriteLine(Add(2, 3));
int Add(int a, int b)
{
return a + b;
}
}
}
Результат выполнения кода:
5
Пример
Давайте используем локальную переменную метода:
using System;
class Program
{
static void Main()
{
int step = 10;
Console.WriteLine(Next(5));
int Next(int num)
{
return num + step;
}
}
}
Результат выполнения кода:
15
Пример
Давайте вернём строку из локальной функции:
using System;
class Program
{
static void Main()
{
string str = "abcde";
Console.WriteLine(GetPrefix(str));
string GetPrefix(string text)
{
return text.Substring(0, 2);
}
}
}
Результат выполнения кода:
"ab"
Пример
Давайте объявим статическую локальную функцию:
using System;
class Program
{
static void Main()
{
Console.WriteLine(Double(6));
static int Double(int num)
{
return num * 2;
}
}
}
Результат выполнения кода:
12
Смотрите также
-
лямбда-выражение,
которое задаёт функцию в одном выражении -
оператор
return,
которым возвращают результат из функции -
оператор yield,
которым отдают элементы из локального итератора -
верхний уровень,
где методы пишут без вложенного класса