Какой тип данных будет на выходе при сложении числа со строкой в C#?

«Какой тип данных будет на выходе при сложении числа со строкой в C#?» — вопрос из категории C# Core, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В C# нельзя напрямую использовать оператор + для сложения числа (int, double и т.д.) и строки (string). Это вызовет ошибку компиляции, так как C# — строго типизированный язык и не выполняет неявные преобразования между этими типами для арифметических операций.

Правильные подходы для получения строкового результата:

  1. Явное преобразование числа в строку и конкатенация:

    int number = 10;
    string text = " apples";
    string result = number.ToString() + text; // "10 apples"
  2. Использование интерполяции строк (рекомендуется):

    string result = $"{number}{text}"; // "10 apples"
  3. Использование String.Concat:

    string result = String.Concat(number, text); // "10 apples"
    // Concat автоматически вызывает ToString() для аргументов.

Ключевой момент: Оператор + для строк работает только когда хотя бы один операнд имеет тип string. Если оба операнда — числа, выполняется арифметическое сложение. Чтобы "сложить" число и строку, число необходимо сначала явно преобразовать в строку.