使用 Visual Studio 创建 .NET 类库

在本教程中,将创建包含一个字符串处理方法的简单类库。

类库定义的是可以由应用程序调用的类型和方法。 如果库以 .NET Standard 2.0 为目标,则支持 .NET Standard 2.0 的任何 .NET 实现(包括 .NET Framework)均可调用该库。 如果库以 .NET 6 为目标,则以 .NET 6 为目标的任何应用程序均可调用该库。 本教程演示如何以 .NET 6 为目标。

创建类库后,可将其作为 NuGet 包或作为与使用该类库的应用程序捆绑在一起的组件进行分发。

必备条件

创建解决方案

首先,创建一个空白解决方案来放置类库项目。 Visual Studio 解决方案用作一个或多个项目的容器。 将其他相关项目添加到同一个解决方案中。

创建空白解决方案:

  • 启动 Visual Studio。

  • 在“开始”窗口上,选择“创建新项目”。

  • 在“创建新项目”页面上,在搜索框中输入“解决方案”。 选择“空白解决方案”模板,然后选择“下一步”。

  • 在“配置新项目”页面上,在“解决方案名称”框中输入“ClassLibraryProjects”。 然后选择“创建”。

创建类库项目

  • 将名为“StringLibrary”的新 .NET 类库项目添加到解决方案。

    1. 在“解决方案资源管理器”中,右键单击解决方案并选择“添加”“新建项目”。

    2. 在“创建新项目”页面上,在搜索框中输入“库”。 从“语言”列表中选择“C#”或“Visual Basic”,然后从“平台”列表中选择“所有平台”。 选择“类库”模板,然后选择“下一步” 。

    3. 在“配置新项目”页的“项目名称”框中,输入“StringLibrary”,然后选择“下一步” 。

    4. 在“其他信息”页上,选择“.NET 6 (长期支持)”,然后选择“创建” 。

  • 请检查以确保库以 .NET 的正确版本为目标。 右键单击“解决方案资源管理器”中的库项目,然后选择“属性”。 “目标框架”文本框显示项目以 .NET 6.0 为目标。

  • 如果使用 Visual Basic,请清除“根命名空间”文本框中的文本。

    对于每个项目,Visual Basic 会自动创建一个与项目名称对应的命名空间。 在本教程中,通过使用代码文件中的 namespace 关键字定义顶级命名空间。

namespace UtilityLibraries;

public static class StringLibrary
{
    public static bool StartsWithUpper(this string? str)
    {
        if (string.IsNullOrWhiteSpace(str))
            return false;

        char ch = str[0];
        return char.IsUpper(ch);
    }
}
  • 类库 UtilityLibraries.StringLibrary包含一个名为 StartsWithUpper 的方法。 此方法会返回 Boolean 值,以指明当前字符串实例是否以大写字符开头。 Unicode 标准会区分大小写字符。 如果为大写字符,Char.IsUpper(Char) 方法返回 true

  • StartsWithUpper 以StartsWithUpper的形式进行实现,这样就可以将其作为 String 类成员进行调用。 string 后的问号 (?) 表示该字符串可能为 null。

  • 在菜单栏上,选择“生成”“生成解决方案”或按 CtrlShiftB,验证项目是否编译正确。

向解决方案添加控制台应用

添加使用类库的控制台应用程序。 应用将提示用户输入字符串,并报告字符串是否以大写字符开头。

  • 将名为“ShowCase”的新 .NET 控制台应用程序添加到解决方案。
    1. 在“解决方案资源管理器”中右键单击解决方案并选择“添加”“新建项目”。

    2. 在“创建新项目”页面,在搜索框中输入“控制台”。 从“语言”列表中选择“C#”或“Visual Basic”,然后从“平台”列表中选择“所有平台”。

    3. 选择“控制台应用程序”模板,然后选择“下一步” 。

    4. 在“配置新项目”页面,在“项目名称”框中输入“ShowCase”。 然后选择“下一步” 。

    5. 在“其他信息”页的“框架”框中选择“.NET 6 (长期支持)” 。 然后选择“创建”。

  • 在“Program.cs”或“Program.vb”文件的代码窗口中,将所有代码替换为以下代码

  • 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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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;
            }
        }
    }
  • 该代码使用 row 变量来维护写入到控制台窗口的数据行数计数。 如果大于或等于 25,该代码将清除控制台窗口,并向用户显示一条消息。

  • 该程序会提示用户输入字符串。 它会指明字符串是否以大写字符开头。 如果用户没有输入字符串就按 Enter 键,那么应用程序会终止,控制台窗口会关闭。

添加项目引用

最初,新的控制台应用项目无权访问类库。 若要允许该项目调用类库中的方法,可以创建对类库项目的项目引用。

  • 在“解决方案资源管理器”中,右键单击 项目的“依赖项”节点,并选择“添加项目引用”。

  •  

  • 在“引用管理器”对话框中,选择“StringLibrary”项目,然后选择“确定”按钮 。

运行应用

  • 在“解决方案资源管理器”中,右键单击“ShowCase”项目,在上下文菜单中选择“设为启动项目”。

     

  • 按 CtrlF5 编译并运行程序,而不进行调试。

  • 输入字符串并按 Enter 以试用程序,然后按 Enter 退出。

  • 4月19日 周二 19:30 .NET云原生挑战赛直播课-第四课【桂素伟-开发基于Docker的.NET 应用】准时开讲,关注51Aspx视频号预约观看
  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

51Aspx源码服务专家

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值