.NET Core - 创建 .NET Standard 库



类库定义了可以从任何应用程序调用的类型和方法。

  • 使用 .NET Core 开发的类库支持 .NET Standard 库,这允许您的库被支持该版本的 .NET Standard 库的任何 .NET 平台调用。

  • 完成类库后,您可以决定是将其作为第三方组件分发,还是将其作为与一个或多个应用程序捆绑在一起的组件包含。

让我们首先在控制台应用程序中添加一个类库项目;在解决方案资源管理器中右键单击 **src** 文件夹,然后选择 **添加→新项目…**

New Project

在 **添加新项目** 对话框中,选择 .NET Core 节点,然后选择类库 (.NET Core) 项目模板。

在名称文本框中,输入“UtilityLibrary”作为项目名称,如下图所示。

UtilityLibrary

单击确定以创建类库项目。创建项目后,让我们添加一个新类。在解决方案资源管理器中右键单击 **项目**,然后选择 **添加→类...**

Class

在中间窗格中选择类,并在名称和字段中输入 StringLib.cs,然后单击 **添加**。添加类后,替换 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** 方法如果字符是大写则返回 true,**Char.IsLower** 方法如果字符是小写则返回 true,类似地,**Char.IsNumber** 方法如果字符是数字则返回 true。

  • 在菜单栏上,选择生成,生成解决方案。该项目应该能够编译而不出错。

  • 我们的 .NET Core 控制台项目无法访问我们的类库。

  • 现在要使用此类库,我们需要在控制台项目中添加此类库的引用。

为此,展开 FirstApp 并右键单击引用,然后选择 **添加引用…**

FirstApp

在引用管理器对话框中,选择 UtilityLibrary(我们的类库项目),然后单击 **确定**。

现在让我们打开控制台项目的 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); 
      } 
   } 
} 

现在让我们运行您的应用程序,您将看到以下输出。

Application

为了更好地理解,让我们在项目中使用类库的其他扩展方法。

广告