Код IT
← Каталог

Паттерн "Стратегия" в C# — когда нужен, а когда достаточно делегата — Идиоматичный C# — `Func`, `Action` и лямбды

Фрагмент из «Паттерн "Стратегия" в C# — когда нужен, а когда достаточно делегата»: Идиоматичный C# — `Func`, `Action` и лямбды.

csharp projectencyclopedia7-06-proektirovanie-i-arhitektura-design-patterns-117 embed URL статья в энциклопедии
C# main.cs
public class SortContext
{
    public void ExecuteSort(List<int> list, Action<List<int>> sortAlgorithm)
    {
        sortAlgorithm(list);
    }
}

var context = new SortContext();

context.ExecuteSort(numbers, list => list.Sort());
context.ExecuteSort(numbers, list =>
{
    // своя логика сортировки
});
public class SortContext
{
    public void ExecuteSort(List<int> list, Action<List<int>> sortAlgorithm)
    {
        sortAlgorithm(list);
    }
}

var context = new SortContext();

context.ExecuteSort(numbers, list => list.Sort());
context.ExecuteSort(numbers, list =>
{
    // своя логика сортировки
});