0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: c#, локальные функции</p>
1
<p>Теги: c#, локальные функции</p>
2
<p><strong>Локальными функциями</strong>в C# называют функции, которые определены внутри других методов. Как правило, локальная функция содержит действия, применяемые лишь в рамках ее метода.</p>
2
<p><strong>Локальными функциями</strong>в C# называют функции, которые определены внутри других методов. Как правило, локальная функция содержит действия, применяемые лишь в рамках ее метода.</p>
3
<p>Для примера давайте определим метод, сравнивающий сумму чисел 2-х массивов:</p>
3
<p>Для примера давайте определим метод, сравнивающий сумму чисел 2-х массивов:</p>
4
<p>В нашем примере метод<strong>Compare</strong>принимает 2 массива, а потом последовательно вычисляет сумму элементов этих массивов, что позволяет узнать, в каком именно массиве сумма чисел будет больше. Да, все работает, но тут есть недостаток, который заключается в том, что повторяются действия, вычисляющие сумму массива:</p>
4
<p>В нашем примере метод<strong>Compare</strong>принимает 2 массива, а потом последовательно вычисляет сумму элементов этих массивов, что позволяет узнать, в каком именно массиве сумма чисел будет больше. Да, все работает, но тут есть недостаток, который заключается в том, что повторяются действия, вычисляющие сумму массива:</p>
5
<p>А что будет, если мы пожелаем сравнивать сумму лишь положительных либо четных чисел или как-нибудь по другому изменить логику сравнения? Лучший выход -- вынос повторяющихся действий в отдельный метод. Но если данные действия больше нигде в программе вызываться не будут и станут применяться лишь в одном методе, то есть смысл определить данные действия в качестве<strong>локальной функции</strong>. Чтобы это реализовать, изменим метод Compare:</p>
5
<p>А что будет, если мы пожелаем сравнивать сумму лишь положительных либо четных чисел или как-нибудь по другому изменить логику сравнения? Лучший выход -- вынос повторяющихся действий в отдельный метод. Но если данные действия больше нигде в программе вызываться не будут и станут применяться лишь в одном методе, то есть смысл определить данные действия в качестве<strong>локальной функции</strong>. Чтобы это реализовать, изменим метод Compare:</p>
6
<p>В результате мы вынесли подсчет суммы в локальную функцию<strong>Sum</strong>-- она принимает массив, возвращая его сумму. Далее, в рамках метода Compare можно ее задействовать в целях вычисления суммы массива. Причем неважно, определена ли локальная функция до либо после применения. Главное, что вне своего метода она использоваться не сможет.</p>
6
<p>В результате мы вынесли подсчет суммы в локальную функцию<strong>Sum</strong>-- она принимает массив, возвращая его сумму. Далее, в рамках метода Compare можно ее задействовать в целях вычисления суммы массива. Причем неважно, определена ли локальная функция до либо после применения. Главное, что вне своего метода она использоваться не сможет.</p>
7
<p><em>По материалам https://metanit.com/sharp/tutorial/.</em></p>
7
<p><em>По материалам https://metanit.com/sharp/tutorial/.</em></p>
8
8