Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом руководстве вы создадите простую библиотеку классов, содержащую один метод обработки строк.
Библиотека классов определяет типы и методы, вызываемые приложением. Если библиотека предназначена для .NET Standard 2.0, ее можно вызвать любой реализацией .NET (включая .NET Framework), которая поддерживает .NET Standard 2.0. Если библиотека предназначена для .NET 8, она может вызываться любым приложением, предназначенным для .NET 8. В этом руководстве показано, как нацелиться на .NET 8.
При создании библиотеки классов его можно распространить как пакет NuGet или как компонент, упакованный с приложением, использующим его.
Предпосылки
Visual Studio 2022 с установленным компонентом разработки десктопных приложений .NET. Пакет SDK для .NET 8 устанавливается автоматически при выборе этой рабочей нагрузки.
Дополнительные сведения см. в разделе "Установка пакета SDK для .NET" с помощью Visual Studio.
Создание решения
Начните с создания пустого решения, чтобы в него поместить проект библиотеки классов. Решение Visual Studio служит контейнером для одного или нескольких проектов. Вы добавите связанные проекты в то же решение.
Чтобы создать пустое решение, выполните следующие действия.
Запустите Visual Studio.
В окне запуска нажмите кнопку "Создать проект".
На странице "Создание проекта " введите решение в поле поиска. Выберите шаблон пустого решения и нажмите кнопку "Далее".
На странице "Настройка нового проекта " введите ClassLibraryProjects в поле имени решения . Затем нажмите кнопку "Создать".
Создание проекта библиотеки классов
Добавьте в решение новый проект библиотеки классов .NET с именем StringLibrary.
Щелкните правой кнопкой мыши решение в обозревателе решений и выберите пункт "Добавить>новый проект".
На странице "Добавление нового проекта " введите библиотеку в поле поиска. Выберите C# или Visual Basic из списка языков и выберите все платформы из списка платформ. Выберите шаблон библиотеки классов и нажмите кнопку "Далее".
На странице "Настройка нового проекта" введите StringLibrary в поле "Имя проекта " и нажмите кнопку "Далее".
На странице "Дополнительные сведения " выберите .NET 8 и нажмите кнопку "Создать".
Убедитесь, что библиотека ориентирована на правильную версию .NET. Щелкните правой кнопкой мыши проект библиотеки в обозревателе решений и выберите пункт "Свойства". Текстовое поле Target Framework показывает, что проект предназначен для .NET 8.0.
Если вы используете Visual Basic, очистите текст в текстовом поле корневого пространства имен.
Для каждого проекта 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, чтобы убедиться, что проект компилируется без ошибок.
Добавление консольного приложения в решение
Добавьте консольное приложение, использующее библиотеку классов. Приложение предложит пользователю ввести строку и сообщить, начинается ли строка с символом верхнего регистра.
Добавьте в решение новое консольное приложение .NET с именем ShowCase.
Щелкните правой кнопкой мыши решение в обозревателе решений и выберите пункт "Добавить>новый проект".
На странице "Добавление нового проекта " введите консоль в поле поиска. Выберите C# или Visual Basic из списка языков и выберите все платформы из списка платформ.
Выберите шаблон консольного приложения и нажмите кнопку "Далее".
На странице "Настройка нового проекта " введите ShowCase в поле "Имя проекта ". Затем нажмите кнопку "Далее".
На странице "Дополнительные сведения " выберите .NET 8 в поле "Платформа ". Затем нажмите кнопку "Создать".
В окне кода для файла Program.cs или Program.vb замените весь код следующим кодом.
using System; using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrEmpty(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, код очищает окно консоли и отображает сообщение пользователю.Программа предложит пользователю ввести строку. Указывает, начинается ли строка с прописным символом. Если пользователь нажимает клавишу ВВОД без ввода строки, приложение заканчивается, а окно консоли закрывается.
Добавление ссылки на проект
Изначально новый проект консольного приложения не имеет доступа к библиотеке классов. Чтобы разрешить ему вызывать методы в библиотеке классов, создайте ссылку на проект библиотеки классов.
В обозревателе решений щелкните правой кнопкой мыши
ShowCaseузел зависимостей проекта и выберите команду Добавить ссылку на проект.
В диалоговом окне "Диспетчер ссылок" выберите проект StringLibrary и нажмите кнопку "ОК".
Запуск приложения
В обозревателе решений щелкните правой кнопкой мыши проект ShowCase и выберите "Задать как проект запуска " в контекстном меню.
Нажмите клавиши CTRL+F5 , чтобы скомпилировать и запустить программу без отладки.
Попробуйте выполнить программу, введя строки и нажав клавишу ВВОД, а затем нажмите клавишу ВВОД , чтобы выйти.
Дополнительные ресурсы
Дальнейшие шаги
В этом руководстве вы создали библиотеку классов. В следующем руководстве вы узнаете, как выполнять модульное тестирование библиотеки классов.
Модульное тестирование библиотеки классов .NET с помощью Visual Studio
Кроме того, вы можете пропустить автоматизированное модульное тестирование и узнать, как предоставить общий доступ к библиотеке, создав пакет NuGet:
Или узнайте, как опубликовать консольное приложение. Приложение консоли, опубликованное из решения, созданного в этом руководстве, будет включать библиотеку классов в виде .dll файла.