HTML Diff
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