Полное руководство по языку программирования С# 14 и платформе .NET 10 / Классы, структуры и пространства имен

Псевдонимы типов и статический импорт

Начальный ⏱ 2 мин чтения 👁 2 🕓 обновлено 11.08.2026

Псевдонимы

Для различных классов и структур мы можем использовать псевдонимы. Затем в программе вместо названия типа используется его псевдоним. Например, для вывода строки на экран применяется метод Console.WriteLine(). Но теперь зададим для класса Console псевдоним:


using printer = System.Console;

printer.WriteLine("Laudate omnes gentes laudate");
printer.WriteLine("Magnificat in secula");

С помощью выражения using printer = System.Console указываем, что псевдонимом для класса System.Console будет имя printer. Это выражение не имеет ничего общего с подключением пространств имен в начале файла, хотя и использует оператор using. При этом используется полное имя класса с учетом пространства имен, в котором класс определен. И далее, чтобы вывести строку, применяется выражение printer.WriteLine("Laudate omnes gentes laudate").

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

И еще пример. Определим класс и для него псевдоним:


using printer = System.Console;
using User = Person;

User tom = new User("Tom");
printer.WriteLine(tom.Name);    // Tom

class Person
{
    public string Name { get; set; }
    public Person(string name) => Name = name;
}

Класс называется Person, но в программе для него используется псевдоним User.

Статический импорт

Также в C# имеется возможность импорта статической функциональности классов. Например, импортируем возможности класса Console:


using static System.Console;

WriteLine("Hello from C# 8.0");

Выражение using static подключает в программу все статические методы и свойства, а также константы. И после этого мы можем не указывать название класса при вызове метода.

Подобным образом можно определять свои классы и импортировать их:


using static System.Console;
using static Operation;

WriteLine(Sum(5, 4));       // 9
WriteLine(Subtract(5, 4));  // 1
WriteLine(Multiply(5, 4)); // 20

static class Operation
{
    public static int Sum(int a, int b) => a + b;
    public static int Subtract(int a, int b) => a - b;
    public static int Multiply(int a, int b) => a * b;
}

Проверь себя

📋 Тест по теме «Псевдонимы типов и статический импорт» Тест по теме

Практические задания

Лёгкое Ручная проверка Заполните пропуск в коде (1)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

using _____ = System.Console;

printer.WriteLine("Laudate omnes gentes laudate");
printer.WriteLine("Magnificat in secula");
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (2)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

using printer = _____.Console;
using User = Person;

User tom = new User("Tom");
printer.WriteLine(tom.Name);    // Tom

class Person
{
    public string Name { get; set; }
    public Person(string name) => Name = name;
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (3)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

using static System.Console;

_____("Hello from C# 8.0");
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (4)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

using static System.Console;
using static Operation;

_____(Sum(5, 4));       // 9
WriteLine(Subtract(5, 4));  // 1
WriteLine(Multiply(5, 4)); // 20

static class Operation
{
    public static int Sum(int a, int b) => a + b;
    public static int Subtract(int a, int b) => a - b;
    public static int Multiply(int a, int b) => a * b;
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (5)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

using printer = System.Console;

printer.WriteLine("Laudate omnes _____ laudate");
printer.WriteLine("Magnificat in secula");
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (1)
+20 XP

В этом фрагменте кода урока пропущены два ключевых элемента. Впишите оба пропущенных значения через запятую в порядке появления (например: x, 5).

using printer = System.Console;

printer._____("Laudate omnes gentes laudate");
printer._____("Magnificat in secula");
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (2)
+20 XP

В этом фрагменте кода урока пропущены два ключевых элемента. Впишите оба пропущенных значения через запятую в порядке появления (например: x, 5).

using printer = System.Console;
using User = _____;

User tom = new User("Tom");
printer.WriteLine(tom.Name);    // Tom

class Person
{
    public string Name { get; set; }
    public Person(string _____) => Name = name;
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Расставьте строки кода в правильном порядке
+20 XP

Строки кода из примера этого урока перемешаны. Впишите их в правильном порядке, каждую строку — с новой строки.

printer.WriteLine("Magnificat in secula");
printer.WriteLine("Laudate omnes gentes laudate");
using printer = System.Console;
Войдите, чтобы отправить решение
Сложное Ручная проверка Объясните и модифицируйте пример из урока «Псевдонимы типов и статический импорт»
+30 XP

Опишите своими словами, что делает приведённый пример кода из урока «Псевдонимы типов и статический импорт», и предложите одно осмысленное изменение (например, другое входное значение или дополнительное условие). Приведите итоговый код.

using printer = System.Console;

printer.WriteLine("Laudate omnes gentes laudate");
printer.WriteLine("Magnificat in secula");
Войдите, чтобы отправить решение
Сложное Ручная проверка Найдите потенциальную проблему в коде урока «Псевдонимы типов и статический импорт»
+30 XP

Изучите приведённый фрагмент кода и опишите, при каких входных данных или условиях он может сработать не так, как ожидается (граничный случай, отсутствие проверки и т.п.). Предложите исправленный вариант.

using printer = System.Console;
using User = Person;

User tom = new User("Tom");
printer.WriteLine(tom.Name);    // Tom

class Person
{
    public string Name { get; set; }
    public Person(string name) => Name = name;
}
Войдите, чтобы отправить решение
Мини-проект Ручная проверка Мини-проект по теме «Псевдонимы типов и статический импорт»
+50 XP

Соберите небольшую программу, которая последовательно демонстрирует ключевые идеи урока. Программа должна быть рабочей и содержать минимум два самостоятельно написанных фрагмента, а не просто копию примера из урока.

Войдите, чтобы отправить решение
Домашнее задание Ручная проверка Домашнее задание по теме «Псевдонимы типов и статический импорт»
+25 XP

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

Войдите, чтобы отправить решение

Обсуждение (0)

Войдите, чтобы оставить комментарий.