使用 Visual Studio 创建 .NET 类库

内容纲要

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

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

如果库以 .NET 6 为目标,则以 .NET 6 为目标的任何应用程序均可调用该库。 本教程演示如何以 .NET 6 为目标。

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

必备条件

安装了具有 .NET 桌面开发工作负载的 Visual Studio 2022 版本 17.0.0 预览版。 选择此工作负载时,将自动安装 .NET 6 SDK。

创建解决方案

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

创建空白解决方案:

启动 Visual Studio。

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

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

20220517224101471

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

创建类库项目

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

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

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

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

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

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

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

20220517224102654

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

将 Class1.cs 或 Class1.vb 代码窗口中的代码替换为以下代码,并保存文件。 如果未显示想要使用的语言,请更改页面顶部的语言选择器。

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 控制台应用程序添加到解决方案。

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

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

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

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

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

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

该代码使用 row 变量来维护写入到控制台窗口的数据行数计数。 如果大于或等于 25,该代码将清除控制台窗口,并向用户显示一条消息。

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;
        }
    }
}

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

添加项目引用

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

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

20220517224103769

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

20220517224103131

运行应用

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

20220517224103376

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

20220517224103994

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

20220517224103610

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

20220517224104187

给TA打赏
共{{data.count}}人
人已打赏
开发工具

使用 Visual Studio 发布 .NET 控制台应用程序

2022-4-13 11:21:48

开发工具

使用 Visual Studio 通过 .NET 测试 .NET 类库

2022-4-19 11:11:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索