.NET Core - 创建 .NET 标准库
类库定义了可以从任何应用程序调用的类型和方法。
使用 .NET Core 开发的类库支持 .NET 标准库,它允许您的类库被任何支持该版本 .NET Standard Library 的 .NET 平台调用。
完成类库后,您可以决定是要将其作为第三方组件分发,还是要将其作为与一个或多个应用程序捆绑在一起的组件包含在内。
让我们从在我们的控制台应用程序中添加一个类库项目开始; 右键单击解决方案资源管理器中的 src 文件夹并选择 Add → New Project…
在 Add New Project 对话框中,选择 .NET Core 节点,然后选择 Class Library (.NET Core) 项目模板。
在Name文本框中,输入"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 方法返回 true,如果字符为小写,则 Char.IsLower 方法返回 true,类似地,如果字符是数字,则 Char.IsNumber 方法返回 true。
在菜单栏上,依次选择 Build, Build Solution。 该项目应该编译没有错误。
.NET Core 控制台项目无权访问类库。
现在要使用这个类库,需要在控制台项目中添加对这个类库的引用。
为此,展开 FirstApp 并右键单击 References 并选择 Add Reference…
在 Reference Manager 对话框中,选择 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); } } }
现在让我们运行您的应用程序,您将看到以下输出。
为了更好地理解,让我们在项目中使用类库的其他扩展方法。