.NET Core 创建 .NET 标准库

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

  • 使用.NET Core 开发的类库支持 .NET 标准库,它允许任何支持该版本的 .NET 标准库的 .NET 平台调用您的库。
  • 完成类库后,您可以决定是将其作为第三方组件分发,还是将其作为与一个或多个应用程序绑定的组件包含。

让我们从在控制台应用程序中添加类库项目开始,右键单击解决方案资源管理器中解决方案,然后选择 添加→ 新建项目…

添加新项目 对话框中,选择类库(.NET Core)项目模板。

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

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

选择中间窗格中的类,在名称和字段中输入 StringLib.cs,然后单击 添加。添加类后,请替换 StringLib.cs 文件中为以下代码。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. namespace UtilityLibrary {
  6. public static class StringLib {
  7. public static bool StartsWithUpper(this String str) {
  8. if (String.IsNullOrWhiteSpace(str))
  9. return false;
  10. Char ch = str[0];
  11. return Char.IsUpper(ch);
  12. }
  13. public static bool StartsWithLower(this String str) {
  14. if (String.IsNullOrWhiteSpace(str))
  15. return false;
  16. Char ch = str[0];
  17. return Char.IsLower(ch);
  18. }
  19. public static bool StartsWithNumber(this String str) {
  20. if (String.IsNullOrWhiteSpace(str))
  21. return false;
  22. Char ch = str[0];
  23. return Char.IsNumber(ch);
  24. }
  25. }
  26. }
  • 类库 UtilityLibrary.StringLib 包含一些方法,如 StartsWithUpperStartsWithLowerStartsWitNumber,它们返回一个布尔值,指示当前字符串实例是否分别以大写、小写和数字开头。

  • 在 .NET Core 中,如果字符为大写,Char.IsUpper 方法返回 true;如果字符为小写,Char.IsLower 方法返回 true,类似地,如果字符是数字,Char.IsNumber 方法返回 true

  • 在菜单栏上,选择 生成→ 生成解决方案。项目应该可以成功编译。

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

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

为此,展开 ConsoleApp1,右键单击依赖性并选择 添加项目引用…

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

现在让我们打开控制台项目的 Program.cs 文件,并用以下代码替换所有代码。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using UtilityLibrary;
  6. namespace ConsoleApp1 {
  7. public class Program {
  8. public static void Main(string[] args) {
  9. int rows = Console.WindowHeight;
  10. Console.Clear();
  11. do {
  12. if (Console.CursorTop >= rows || Console.CursorTop == 0) {
  13. Console.Clear();
  14. Console.WriteLine("\n按 <Enter> 退出; 否则输入一个字符串然后按 <Enter>:\n");
  15. }
  16. string input = Console.ReadLine();
  17. if (String.IsNullOrEmpty(input)) break;
  18. Console.WriteLine("输入: {0} {1,30}: {2}\n", input, "是否是大写开头? ",
  19. input.StartsWithUpper() ? "是" : "否");
  20. } while (true);
  21. }
  22. }
  23. }

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

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