Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы создадите простую служебную библиотеку, содержащую один метод обработки строк.
Библиотека классов определяет типы и методы, вызываемые приложением. Если библиотека предназначена для .NET standard 2.0, она может вызываться любой реализацией .NET (включая платформу .NET Framework), поддерживающей .NET Standard 2.0. Если библиотека предназначена для .NET 10, она может вызываться любым приложением, предназначенным для .NET 10. В этом руководстве показано, как нацеливаться на .NET 10.
При создании библиотеки классов его можно распространить как сторонний компонент или как пакетный компонент с одним или несколькими приложениями.
Предпосылки
Visual Studio с рабочей нагрузкой разработки для настольных приложений .NET установленной. Пакет SDK .NET устанавливается автоматически при выборе этой рабочей нагрузки.
Для получения дополнительной информации см. раздел Установка набора средств разработки .NET (SDK) с Visual Studio.
- Последняя версия .NET SDK
- редактор Visual Studio Code
- C# DevKit
Инструкции по установке
В Windows данный файл конфигурации WinGet используется для установки всех необходимых компонентов. Если у вас уже установлено что-то, WinGet пропустит этот шаг.
- Скачайте файл и дважды щелкните его, чтобы запустить его.
- Прочитайте лицензионное соглашение, введите и, и выберите ввод при появлении запроса на принятие.
- Если на панели задач появится мигающий запрос контроля учетных записей пользователей (UAC), разрешите установку продолжить.
На других платформах необходимо установить каждый из этих компонентов отдельно.
- Скачайте рекомендуемый установщик на странице скачивания пакета SDK .NET и дважды щелкните его, чтобы запустить его. Страница загрузки обнаруживает платформу и рекомендует последний установщик для вашей платформы.
- Скачайте последнюю версию установщика на домашней странице Visual Studio Code и дважды щелкните его, чтобы запустить его. Эта страница также обнаруживает платформу, а ссылка должна быть правильной для вашей системы.
- Нажмите кнопку "Установить" на странице расширения C# DevKit. Откроется Visual Studio код и запрашивается, нужно ли установить или включить расширение. Выберите "Установить".
- Учетная запись GitHub для использования GitHub codespaces. Если у вас еще нет учетной записи, вы можете создать бесплатную учетную запись в GitHub.com.
Создание решения
Сначала создайте пустое решение для хранения проекта библиотеки классов. Решение Visual Studio служит контейнером для одного или нескольких проектов. Добавьте связанные проекты в то же решение.
Чтобы создать пустое решение, выполните следующие действия.
Запустите Visual Studio.
В окне запуска нажмите кнопку "Создать проект".
На странице "Создание проекта " введите решение в поле поиска. Выберите шаблон пустого решения и нажмите кнопку "Далее".
шаблон пустого решения в Visual Studio
На странице "Настройка нового проекта " введите ClassLibraryProjects в поле имени решения . Затем нажмите кнопку "Создать".
Начните с создания проекта библиотеки классов .NET с именем StringLibrary и связанного решения. Решение служит контейнером для одного или нескольких проектов. Вы добавите дополнительные связанные проекты в то же решение.
Запустите Visual Studio Code.
Перейдите в представление обозревателя и выберите Create .NET Project. Кроме того, можно создать палитру команд с помощью клавиш CTRL+SHIFT+P (Command+SHIFT+P в MacOS), а затем введите ".NET" и найдите и выберите команду .NET: Создать проект.
Выберите шаблон проекта Библиотека классов.
Затем выберите расположение, в котором будет создан новый проект: создайте папку с именем
ClassLibraryProjectsи выберите ее.Назовите проект StringLibrary.
Выберите .sln в качестве формата файла решения.
Выберите "Показать все параметры шаблона".
Затем выберите .NET 10. Затем нажмите кнопку "Создать проект".
В диалоговом окне "Доверять авторам файлов" в этой папке выберите"Да", я доверяю авторам. Вы можете доверять авторам, так как эта папка содержит только файлы, созданные .NET и добавленные или измененные вами.
Начните с создания GitHub Codespace с помощью среды учебника, а затем создайте проект библиотеки классов .NET.
Откройте окно браузера и перейдите в репозиторий кодового пространства учебника.
Нажмите зеленую кнопку "Код" , а затем вкладку "Пространства кода ".
Выберите значок
+или зеленую кнопку Создать codespace на главной, чтобы создать новое пространство Codespace с использованием этой среды.
Когда пространство кода загружается, откройте терминал и перейдите в папку учебников:
cd tutorialsСоздайте проект библиотеки классов:
dotnet new classlib -n StringLibrary
Создание проекта библиотеки классов
Добавьте в решение новый проект библиотеки классов .NET с именем StringLibrary.
Щелкните решение правой кнопкой мыши в Solution Explorer и выберите Add>New Project.
На странице "Добавление нового проекта " введите библиотеку в поле поиска. Выберите C# или Visual Basic в списке языков и выберите платформы All из списка платформ. Выберите шаблон библиотеки классов и нажмите кнопку "Далее".
На странице "Настройка нового проекта" введите StringLibrary в поле "Имя проекта " и нажмите кнопку "Далее".
На странице Additional information выберите .NET 10 и выберите Create.
Убедитесь, что библиотека нацелена на правильную версию .NET. Щелкните правой кнопкой мыши проект библиотеки в Solution Explorer и выберите Properties. Текстовое поле Target Framework показывает, что проект предназначен для .NET 10.0.
Если вы используете Visual Basic, удалите текст в текстовом поле Default namespace.
Для каждого проекта Visual Basic автоматически создает пространство имен, соответствующее имени проекта. В этом руководстве описано, как определить пространство имен верхнего уровня с помощью
namespaceключевого слова в файле кода.Замените код в окне кода на Class1.cs или Class1.vb следующим кодом и сохраните файл. Если язык, который вы хотите использовать, не отображается, измените селектор языка в верхней части страницы.
namespace UtilityLibraries; public static class StringLibrary { public static bool StartsWithUpper(this string? str) { if (string.IsNullOrWhiteSpace(str)) return false; return char.IsUpper(str[0]); } }Imports System.Runtime.CompilerServices Namespace UtilityLibraries Public Module StringLibrary <Extension> Public Function StartsWithUpper(str As String) As Boolean If String.IsNullOrWhiteSpace(str) Then Return False End If Dim ch As Char = str(0) Return Char.IsUpper(ch) End Function End Module End NamespaceБиблиотека
UtilityLibraries.StringLibraryклассов содержит метод с именемStartsWithUpper. Этот метод возвращает значение Boolean, указывающее, начинается ли текущий экземпляр строки с символом верхнего регистра. Стандарт Юникод отличает прописные символы от строчных символов. Метод Char.IsUpper(Char) возвращаетtrue, если символ является верхним регистром.StartsWithUpperреализуется как метод расширения , чтобы его можно было вызвать, как если бы он был членом String класса. Вопросительный знак (?) после кодаstringC# указывает, что строка может иметь значение NULL.В строке меню выберите Сборка>Построить решение или нажмите Ctrl+Shift+B, чтобы убедиться, что проект компилируется без ошибок.
Проект создается и Class1.cs открывается.
Замените содержимое Class1.cs следующим кодом:
namespace UtilityLibraries; public static class StringLibrary { public static bool StartsWithUpper(this string? str) { if (string.IsNullOrWhiteSpace(str)) return false; return char.IsUpper(str[0]); } }Библиотека
UtilityLibraries.StringLibraryклассов содержит метод с именемStartsWithUpper. Этот метод возвращает значение Boolean, указывающее, начинается ли текущий экземпляр строки с символом верхнего регистра. Стандарт Юникод отличает прописные символы от строчных символов. Метод Char.IsUpper(Char) возвращаетtrue, если символ является верхним регистром.StartsWithUpperреализуется как метод расширения , чтобы его можно было вызвать, как если бы он был членом String класса.Сохраните файл.
Разверните Solution Explorer в нижней части представления Explorer.
Щелкните правой кнопкой мыши решение в Solution Explorer и выберите Build или откройте палитру команд и выберите .NET: build, чтобы создать решение и убедиться, что проект компилируется без ошибок.
Выходные данные терминала выглядят следующим образом:
Determining projects to restore... All projects are up-to-date for restore. StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net10.0\StringLibrary.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:02.78
Перейдите в папку StringLibrary:
cd StringLibraryОткройте Class1.cs и замените его содержимое следующим кодом:
namespace UtilityLibraries; public static class StringLibrary { public static bool StartsWithUpper(this string? str) { if (string.IsNullOrWhiteSpace(str)) return false; return char.IsUpper(str[0]); } }Библиотека
UtilityLibraries.StringLibraryклассов содержит метод с именемStartsWithUpper. Этот метод возвращает значение Boolean, указывающее, начинается ли текущий экземпляр строки с символом верхнего регистра. Стандарт Юникод отличает прописные символы от строчных символов. Метод Char.IsUpper(Char) возвращаетtrue, если символ является верхним регистром.StartsWithUpperреализуется как метод расширения , чтобы его можно было вызвать, как если бы он был членом String класса.Сохраните файл и создайте проект:
dotnet buildСборка должна выполняться без ошибок.
Добавление консольного приложения в решение
Добавьте консольное приложение, использующее библиотеку классов. Приложение предложит пользователю ввести строку и сообщить, начинается ли строка с символом верхнего регистра.
Добавьте в решение новое консольное приложение .NET с именем ShowCase.
Щелкните решение правой кнопкой мыши в Solution Explorer и выберите Add>New Project.
На странице "Добавление нового проекта " введите консоль в поле поиска. Выберите C# или Visual Basic в списке языков и выберите платформы All из списка платформ.
Выберите шаблон консольного приложения
и нажмите кнопку Далее .На странице "Настройка нового проекта " введите ShowCase в поле "Имя проекта ". Затем нажмите кнопку "Далее".
На странице Additional information выберите .NET 10 в поле Framework. Затем нажмите кнопку "Создать".
В окне кода для файла Program.cs или Program.vb замените весь код следующим кодом.
using System; using UtilityLibraries; int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrWhiteSpace(input)) break; Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); row += 3; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; }Imports UtilityLibraries Module Program Dim row As Integer = 0 Sub Main() Do If row = 0 OrElse row >= 25 Then ResetConsole() Dim input As String = Console.ReadLine() If String.IsNullOrEmpty(input) Then Return Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{If(input.StartsWithUpper(), "Yes", "No")} {Environment.NewLine}") row += 3 Loop While True End Sub Private Sub ResetConsole() If row > 0 Then Console.WriteLine("Press any key to continue...") Console.ReadKey() End If Console.Clear() Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}") row = 3 End Sub End ModuleКод использует
rowпеременную для поддержания количества строк данных, записанных в окно консоли. Каждый раз, когда оно больше или равно 25, код очищает окно консоли и отображает сообщение пользователю.Программа предложит пользователю ввести строку. Указывает, начинается ли строка с прописным символом. Если пользователь нажимает клавишу ВВОД без ввода строки, приложение заканчивается, а окно консоли закрывается.
Щелкните правой кнопкой мыши решение в Solution Explorer и выберите New Project или в палитре команд выберите .NET: Новый проект.
Выберите консольное приложение.
Присвойте ему имя ShowCase, выберите каталог по умолчанию и нажмите кнопку "Создать проект".
Откройте ShowCase/Program.cs и замените весь код следующим кодом.
using System; using UtilityLibraries; int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrWhiteSpace(input)) break; Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); row += 3; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; }Код использует
rowпеременную для поддержания количества строк данных, записанных в окно консоли. Каждый раз, когда оно больше или равно 25, код очищает окно консоли и отображает сообщение пользователю.Программа предложит пользователю ввести строку. Указывает, начинается ли строка с прописным символом. Если пользователь нажимает клавишу ВВОД без ввода строки, приложение заканчивается, а окно консоли закрывается.
Сохраните свои изменения.
Вернитесь к папке учебников и создайте консольное приложение:
cd .. dotnet new console -n ShowCaseОткройте ShowCase/Program.cs и замените весь код следующим кодом:
using System; using UtilityLibraries; int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrWhiteSpace(input)) break; Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); row += 3; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; }Код использует
rowпеременную для поддержания количества строк данных, записанных в окно консоли. Каждый раз, когда оно больше или равно 25, код очищает окно консоли и отображает сообщение пользователю.Программа предложит пользователю ввести строку. Указывает, начинается ли строка с прописным символом. Если пользователь нажимает клавишу ВВОД без ввода строки, приложение заканчивается, а окно консоли закрывается.
Сохраните свои изменения.
Добавление ссылки на проект
Изначально новый проект консольного приложения не имеет доступа к библиотеке классов. Чтобы разрешить ему вызывать методы в библиотеке классов, создайте ссылку на проект библиотеки классов.
В Solution Explorer щелкните правой кнопкой мыши на узле
ShowCaseпроекта Dependencies и выберите Добавить ссылку на проект.
В диалоговом окне "Диспетчер ссылок" выберите проект StringLibrary и нажмите кнопку "ОК".
В Solution Explorer щелкните правой кнопкой мыши на проекте ShowCase и выберите Добавить ссылку на проект.
Выберите StringLibrary.
Подсказка
Кроме того, добавьте следующее в ShowCase.csproj:
<ItemGroup>
<ProjectReference Include="..\StringLibrary\StringLibrary.csproj" />
</ItemGroup>
Добавьте ссылку на проект StringLibrary из проекта ShowCase:
cd ShowCase
dotnet add reference ../StringLibrary/StringLibrary.csproj
Запуск приложения
В Solution Explorer щелкните правой кнопкой мыши проект ShowCase и выберите Set as StartUp Project в контекстном меню.
Контекстное меню проекта Visual Studio для установки стартового проекта Нажмите клавиши CTRL+F5 , чтобы скомпилировать и запустить программу без отладки.
Попробуйте выполнить программу, введя строки и нажав клавишу ВВОД, а затем нажмите клавишу ВВОД , чтобы выйти.
Используйте верхнюю строку меню, чтобы выбрать запуск без>отладки.
Выберите C#.
Выберите C#: ShowCase.
Если вы получите сообщение об ошибке, в котором говорится, что программа C# не загружена, закройте текущую открытую папку и откройте папку
ShowCase. Затем повторите попытку запуска приложения.Попробуйте выполнить программу, введя строки и нажав клавишу ВВОД, а затем нажмите клавишу ВВОД , чтобы выйти.
Выходные данные терминала выглядят следующим образом:
Press <Enter> only to exit; otherwise, enter a string and press <Enter>: A string that starts with an uppercase letter Input: A string that starts with an uppercase letter Begins with uppercase? : Yes a string that starts with a lowercase letter Input: a string that starts with a lowercase letter Begins with uppercase? : No
Запустите приложение ShowCase:
dotnet runПопробуйте выполнить программу, введя строки и нажав клавишу ВВОД, а затем нажмите клавишу ВВОД , чтобы выйти.
Выходные данные терминала выглядят следующим образом:
Press <Enter> only to exit; otherwise, enter a string and press <Enter>: A string that starts with an uppercase letter Input: A string that starts with an uppercase letter Begins with uppercase? : Yes a string that starts with a lowercase letter Input: a string that starts with a lowercase letter Begins with uppercase? : No
Дополнительные ресурсы
- Разработка библиотек с помощью .NET CLI
- .NET стандартные версии и поддерживаемые платформы.
Очистка ресурсов
GitHub автоматически удаляет пространство кода через 30 дней бездействия. Если вы планируете ознакомиться с дополнительными руководствами в этой серии, вы можете оставить ваш Codespace активным. Если вы готовы посетить сайт .NET, чтобы скачать пакет SDK .NET, можно удалить пространство codespace. Чтобы удалить ваш Codespace, откройте окно браузера и перейдите к вашим Codespace. В окне вы видите список ваших codespaces. Выберите три точки (...) в записи пространства кода учебного руководства. Затем нажмите кнопку "Удалить".
Дальнейшие шаги
В этом руководстве вы создали библиотеку классов. В следующем руководстве вы узнаете, как выполнять модульное тестирование библиотеки классов.
Кроме того, вы можете пропустить автоматическое модульное тестирование и узнать, как предоставить общий доступ к библиотеке, создав пакет NuGet:
Вы также узнаете, как опубликовать консольное приложение. Приложение консоли, опубликованное из решения, созданного в этом руководстве, будет включать библиотеку классов в виде .dll файла.