.NET Core - создание стандартной библиотеки .NET

Библиотека классов определяет типы и методы, которые можно вызывать из любого приложения.

  • Библиотека классов, разработанная с использованием .NET Core, поддерживает стандартную библиотеку .NET, которая позволяет вызывать вашу библиотеку с любой платформы .NET, которая поддерживает эту версию стандартной библиотеки .NET.

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

Начнем с добавления проекта библиотеки классов в наше консольное приложение; щелкните правой кнопкой мыши наsrc папку в обозревателе решений и выберите Add → New Project…

в Add New Project В диалоговом окне выберите узел .NET Core, затем выберите шаблон проекта библиотеки классов (.NET Core).

В текстовом поле «Имя» введите «UtilityLibrary» в качестве имени проекта, как показано на следующем рисунке.

Нажмите OK, чтобы создать проект библиотеки классов. Как только проект будет создан, давайте добавим новый класс. Щелкните правой кнопкой мыши наproject в обозревателе решений и выберите Add → Class...

Выберите класс на средней панели и введите StringLib.cs в имя и поле, а затем щелкните Add. После добавления класса замените следующий код в файле StringLib.cs.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
  
namespace UtilityLibrary { 
   public static class StringLib { 
      public static bool StartsWithUpper(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
         return false; 
         Char ch = str[0]; 
         return Char.IsUpper(ch); 
      } 
      public static bool StartsWithLower(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
         return false; 
         Char ch = str[0]; 
         return Char.IsLower(ch); 
      } 
      public static bool StartsWithNumber(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
         return false;  
         Char ch = str[0]; 
         return Char.IsNumber(ch); 
      } 
   } 
}
  • Библиотека классов, UtilityLibrary.StringLib, содержит такие методы, как, StartsWithUpper, StartsWithLower, и StartsWithNumber который возвращает логическое значение, указывающее, начинается ли текущий экземпляр строки с верхнего, нижнего регистра и числа соответственно.

  • В .NET Core Char.IsUpper метод возвращает истину, если символ в верхнем регистре, метод Char.IsLower возвращает истину, если символ в нижнем регистре, и аналогично метод Char.IsNumber возвращает истину, если символ является числовым.

  • В строке меню выберите Build, Build Solution. Проект должен компилироваться без ошибок.

  • Наш проект консоли .NET Core не имеет доступа к нашей библиотеке классов.

  • Теперь, чтобы использовать эту библиотеку классов, нам нужно добавить ссылку на эту библиотеку классов в наш консольный проект.

Для этого разверните FirstApp, щелкните правой кнопкой мыши Ссылки и выберите Add Reference…

В диалоговом окне диспетчера ссылок выберите UtilityLibrary, наш проект библиотеки классов, а затем нажмите OK.

Давайте теперь откроем файл Program.cs проекта консоли и заменим весь код следующим кодом.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using UtilityLibrary; 

namespace FirstApp { 
   public class Program { 
      public static void Main(string[] args) { 
         int rows = Console.WindowHeight; 
         Console.Clear(); 
         do { 
            if (Console.CursorTop >= rows || Console.CursorTop == 0) { 
               Console.Clear(); 
               Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press <Enter>:\n"); 
            } 
            string input = Console.ReadLine(); 
            
            if (String.IsNullOrEmpty(input)) break; 
            Console.WriteLine("Input: {0} {1,30}: {2}\n", input, "Begins with uppercase? ", 
            input.StartsWithUpper() ? "Yes" : "No"); 
         } while (true); 
      } 
   } 
}

Давайте теперь запустим ваше приложение, и вы увидите следующий результат.

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