0Pricing
C# Academy · Урок

Вывод типа локальных переменных с var

Используйте var, когда тип очевиден.

«Вывод типа локальных переменных с var» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.

Что такое var?

var позволяет компилятору вывести тип локальной переменной из инициализатора. Во время компиляции переменная по-прежнему имеет строгий тип.

using System;

class Program {
    static void Main() {
        var count = 10;
        Console.WriteLine(count);
    }
}

var — это не dynamic

var определяется во время компиляции. var x = 10 — это ровно int, и позднее в него нельзя записать строку.

using System;

class Program {
    static void Main() {
        var name = "Ada";
        Console.WriteLine(name.GetType().Name);
    }
}

Вывод типа из литералов

Компилятор анализирует литерал, чтобы выбрать тип: 1 — это int, 1.5 — double, "hi" — строка.

using System;

class Program {
    static void Main() {
        var a = 1;
        var b = 1.5;
        var c = "hi";
        Console.WriteLine(a.GetType().Name + " " + b.GetType().Name + " " + c.GetType().Name);
    }
}

Инициализатор обязателен

Поскольку тип берётся из инициализатора, переменным var необходимо присвоить значение при объявлении.

using System;

class Program {
    static void Main() {
        var total = 0;
        for (int i = 1; i <= 4; i++) total += i;
        Console.WriteLine(total);
    }
}

var с очевидными типами

var особенно полезен, когда правая часть уже указывает тип, например при вызове конструктора. Это избавляет от повторения.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var list = new List<int> { 1, 2, 3 };
        Console.WriteLine(list.Count);
    }
}

var с результатами методов

Можно использовать var для возвращаемых значений, если из имени метода понятен тип результата.

using System;

class Program {
    static int Square(int n) { return n * n; }
    static void Main() {
        var result = Square(6);
        Console.WriteLine(result);
    }
}

var в цикле foreach

var удобен в циклах foreach, перебирающих коллекции с известным типом элементов.

using System;

class Program {
    static void Main() {
        var names = new[] { "Sam", "Lee" };
        foreach (var n in names)
            Console.WriteLine(n);
    }
}

Массивы с выведенным типом

Тип элементов неявно типизированного массива new[] { ... } выводится из его значений.

using System;

class Program {
    static void Main() {
        var nums = new[] { 10, 20, 30 };
        Console.WriteLine(nums.Length);
    }
}

var по-прежнему типобезопасен

Поскольку тип фиксирован, последующее присваивание значения неправильного типа приводит к ошибке компиляции, как и явное объявление.

using System;

class Program {
    static void Main() {
        var x = 5;
        x = 10;
        Console.WriteLine(x);
    }
}

var и анонимные типы

var необходим для анонимных типов, поскольку у них нет имени, которое можно было бы указать.

using System;

class Program {
    static void Main() {
        var point = new { X = 3, Y = 4 };
        Console.WriteLine(point.X + ", " + point.Y);
    }
}

Преимущество для читаемости

При правильном использовании var уменьшает шум и помогает выровнять код, особенно при длинных именах обобщённых типов.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var scores = new Dictionary<string, int> { ["Ann"] = 90 };
        Console.WriteLine(scores["Ann"]);
    }
}

Быстрая проверка

Проверьте понимание var.

Итоги

var указывает компилятору вывести тип локальной переменной из её инициализатора, поэтому переменная остаётся строго типизированной и фиксированной во время компиляции, в отличие от dynamic.

Для него требуется инициализатор, он устраняет избыточные имена типов и необходим для анонимных типов. Он повышает читаемость, когда тип и так очевиден.

Часто задаваемые вопросы

Урок «Вывод типа локальных переменных с var» бесплатный?

Да — полный текст урока «Вывод типа локальных переменных с var» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.

Чему я научусь в уроке «Вывод типа локальных переменных с var»?

Используйте var, когда тип очевиден. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Вывод типа локальных переменных с var»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Вывод типа локальных переменных с var
  2. Когда следует избегать var
  3. Тип dynamic
  4. Выражения new с выводом типа по контексту
← Назад к C# Academy