Где хранится ключевое слово var в C#?

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

Ответ

Ключевое слово var не "хранится" в памяти во время выполнения. Это инструмент неявной типизации, который существует только на этапе компиляции. Компилятор C# определяет фактический тип переменной на основе выражения в правой части и заменяет var на этот конкретный тип в скомпилированном IL-коде.

Пример:

var number = 42; // Компилятор выводит тип `int`
var name = "Alice"; // Компилятор выводит тип `string`
var list = new List<int>(); // Компилятор выводит тип `List<int>`

После компиляции этот код эквивалентен явному объявлению типов:

int number = 42;
string name = "Alice";
List<int> list = new List<int>();

Основные правила и best practices:

  • Требуется инициализация: var должен быть сразу инициализирован, чтобы компилятор мог вывести тип (var x; — ошибка компиляции).
  • Тип фиксирован: после вывода тип переменной не может быть изменен.
  • Использование: var улучшает читаемость кода, особенно с длинными именами дженерик-типов (например, Dictionary<string, List<CustomObject>>). Однако для примитивных типов (int, string) явное указание типа иногда делает код яснее.