Elementor Header #8

45. Комбинирование операций и методов

1. Введение

Комбинирование операций и методов — это процесс, при котором несколько методов и операторов объединяются в одном выражении для упрощения кода, улучшения читаемости и повышения эффективности.

Примеры комбинирования:

  • Вызов методов цепочкой (method chaining)
  • Использование методов и операторов в одном выражении
  • Вложенные вызовы методов
  • Комбинирование логических операций

2. Комбинирование математических операций и методов

В C# можно объединять арифметические операции с вызовами методов:

Пример:

				
					int DoubleAndSum(int a, int b)
{
    return (a * 2) + (b * 2);
}

Console.WriteLine(DoubleAndSum(3, 5)); // 16

				
			

Здесь результат умножения передается в сложение, сокращая количество строк.


3. Цепочки вызовов методов (Method Chaining)

Многие классы поддерживают вызов методов в цепочку, что улучшает читаемость кода.

Пример с string:

				
					string text = "  привет, мир!  ";
string result = text.Trim().ToUpper().Replace("МИР", "C#");

Console.WriteLine(result); // "ПРИВЕТ, C#"

				
			

Здесь три метода применяются последовательно.

Пример с List<T> и LINQ:

				
					List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

var result = numbers
    .Where(n => n % 2 == 0)  // Оставляем четные
    .Select(n => n * n)      // Возводим в квадрат
    .OrderByDescending(n => n); // Сортируем по убыванию

Console.WriteLine(string.Join(", ", result)); // 36, 16, 4

				
			

Здесь три метода (Where, Select, OrderByDescending) вызываются последовательно.


4. Вложенные вызовы методов

Вложенные вызовы методов позволяют объединять их результаты без создания промежуточных переменных.

Пример:

				
					double SquareRootOfSum(int a, int b)
{
    return Math.Sqrt(a + b);
}

Console.WriteLine(SquareRootOfSum(9, 16)); // 5

				
			

Здесь сначала вычисляется сумма, затем её корень.


5. Комбинирование логических операций и методов

Методы можно комбинировать с логическими операторами (&&, ||, !).

Пример:

				
					bool IsValidString(string input)
{
    return !string.IsNullOrWhiteSpace(input) && input.Length > 5;
}

Console.WriteLine(IsValidString("Hello"));   // false
Console.WriteLine(IsValidString("Привет!")); // true

				
			

Здесь два условия объединены в одном выражении.


6. Использование тернарного оператора с методами

Можно комбинировать методы с тернарным оператором (?:).

Пример:

				
					string GetMessage(int age)
{
    return age >= 18 ? "Доступ разрешен" : "Доступ запрещен";
}

Console.WriteLine(GetMessage(20)); // Доступ разрешен
Console.WriteLine(GetMessage(15)); // Доступ запрещен

				
			

Здесь метод возвращает разные строки в зависимости от возраста.

 

Заключение

  • Комбинирование операций и методов позволяет писать более компактный и читаемый код.
  • Цепочки вызовов (method chaining) делают код последовательным и выразительным.
  • Вложенные вызовы методов помогают избежать создания лишних переменных.
  • Логические и тернарные операторы помогают упростить условия.
  • LINQ делает работу с коллекциями более удобной.

Тестовое задание

Напишите метод, который принимает список чисел и возвращает строку с числами, которые:

  1. Больше 10
  2. Умножены на 2
  3. Отсортированы по убыванию
  4. Преобразованы в строку

Пример:

				
					using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string ProcessNumbers(List<int> numbers)
    {
        return string.Join(", ", numbers
            .Where(n => n > 10)
            .Select(n => n * 2)
            .OrderByDescending(n => n));
    }

    static void Main()
    {
        List<int> numbers = new List<int> { 5, 12, 8, 20, 3, 15 };
        Console.WriteLine(ProcessNumbers(numbers)); // "40, 30, 24"
    }
}

				
			

Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.

logo