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

Создание библиотеки классов в Visual Studio

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

Нередко различные классы и структуры оформляются в виде отдельных библиотек, которые компилируются в файлы dll и затем могут подключаться в другие проекты. Благодаря этому мы можем определить один и тот же функционал в виде библиотеки классов и подключать в различные проекты или передавать на использование другим разработчикам.

Создадим и подключим библиотеку классов.

Возьмем имеющийся проект консольного приложения C#, например, созданный в прошлых темах. В структуре проекта нажмем правой кнопкой на название решения и далее в появившемся контекстном меню выберем Add -> New Project... (Добавить новый проект):

Далее в списке шаблонов проекта найдем пункт Class Library:

Затем дадим новому проекту какое-нибудь название, например, MyLib:

После создания этого проекта в решение будет добавлен новый проект, в моем случае с названием MyLib:

По умолчанию новый проект имеет один пустой класс Class1 в файле Class1.cs. Мы можем этот файл удалить или переименовать, как нам больше нравится.

Например, переименуем файл Class1.cs в Person.cs, а класс Class1 в Person. Определим в классе Person простейший код:


namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}

Теперь скомпилируем библиотеку классов. Для этого нажмем правой кнопкой на проект библиотеки классов и в контекстном меню выберем пункт Rebuild:

После компиляции библиотеки классов в папке проекта в каталоге bin/Debug/net6.0 мы сможем найти скомпилированный файл dll (MyLib.dll). Подключим его в основной проект. Для этого в основном проекте нажмем правой кнопкой на узел Dependencies и в контекстном меню выберем пункт Add Project Reference...:

Далее нам откроется окно для добавления библиотек. В этом окне выберем пункт Solution,который позволяет увидеть все библиотеки классов из проектов текущего решения, поставим отметку рядом с нашей библиотекой и нажмем на кнопку OK:

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

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


using MyLib;    // подключение пространства имен из библиотеки классов

Person tom = new("Tom");
tom.Print();    // Name: Tom

Проверь себя

📋 Тест по теме «Создание библиотеки классов в Visual Studio» Тест по теме

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

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

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

namespace _____
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (2)
+10 XP

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

using MyLib;    // подключение пространства имен из библиотеки классов

_____ tom = new("Tom");
tom.Print();    // Name: Tom
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (3)
+10 XP

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

namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            _____.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (4)
+10 XP

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

using MyLib;    // подключение пространства имен из библиотеки классов

Person tom = new("Tom");
tom.Print();    // _____: Tom
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (5)
+10 XP

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

namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"_____: {name}");
    }
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (1)
+20 XP

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

namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            _____.name = name;
        }
        public void Print() => Console.WriteLine($"_____: {name}");
    }
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (2)
+20 XP

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

using MyLib;    // подключение пространства имен из библиотеки классов

Person tom = new("_____");
tom.Print();    // _____: Tom
Войдите, чтобы отправить решение
Среднее Ручная проверка Расставьте строки кода в правильном порядке
+20 XP

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

Person tom = new("Tom");
tom.Print();    // Name: Tom
using MyLib;    // подключение пространства имен из библиотеки классов
Войдите, чтобы отправить решение
Сложное Ручная проверка Объясните и модифицируйте пример из урока «Создание библиотеки классов в Visual Studio»
+30 XP

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

namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}
Войдите, чтобы отправить решение
Сложное Ручная проверка Найдите потенциальную проблему в коде урока «Создание библиотеки классов в Visual Studio»
+30 XP

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

using MyLib;    // подключение пространства имен из библиотеки классов

Person tom = new("Tom");
tom.Print();    // Name: Tom
Войдите, чтобы отправить решение
Мини-проект Ручная проверка Мини-проект по теме «Создание библиотеки классов в Visual Studio»
+50 XP

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

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

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

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

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

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