使用 Visual Studio 创建 .NET 类库
yuyutoo 2024-10-12 01:33 7 浏览 0 评论
在本教程中,将创建包含一个字符串处理方法的简单类库。
类库定义的是可以由应用程序调用的类型和方法。 如果库以 .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。
在“开始”窗口上,选择“创建新项目”。
在“创建新项目”页面上,在搜索框中输入“解决方案”。 选择“空白解决方案”模板,然后选择“下一步”。
在“配置新项目”页面上,在“解决方案名称”框中输入“ClassLibraryProjects”。 然后选择“创建”。
创建类库项目
将名为“StringLibrary”的新 .NET 类库项目添加到解决方案。
在“解决方案资源管理器”中,右键单击解决方案并选择“添加”“新建项目”。
在“创建新项目”页面上,在搜索框中输入“库”。 从“语言”列表中选择“C#”或“Visual Basic”,然后从“平台”列表中选择“所有平台”。 选择“类库”模板,然后选择“下一步” 。
在“配置新项目”页的“项目名称”框中,输入“StringLibrary”,然后选择“下一步” 。
在“其他信息”页上,选择“.NET 6 (长期支持)”,然后选择“创建” 。
请检查以确保库以 .NET 的正确版本为目标。 右键单击“解决方案资源管理器”中的库项目,然后选择“属性”。 “目标框架”文本框显示项目以 .NET 6.0 为目标。
如果使用 Visual Basic,请清除“根命名空间”文本框中的文本。
对于每个项目,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(#34;Input: {input}");
Console.WriteLine("Begins with uppercase? " +
#34;{(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(#34;{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
row = 3;
}
}
}
该程序会提示用户输入字符串。 它会指明字符串是否以大写字符开头。 如果用户没有输入字符串就按 Enter 键,那么应用程序会终止,控制台窗口会关闭。
添加项目引用
最初,新的控制台应用项目无权访问类库。 若要允许该项目调用类库中的方法,可以创建对类库项目的项目引用。
在“解决方案资源管理器”中,右键单击 项目的“依赖项”节点,并选择“添加项目引用”。
在“引用管理器”对话框中,选择“StringLibrary”项目,然后选择“确定”按钮 。
运行应用
在“解决方案资源管理器”中,右键单击“ShowCase”项目,在上下文菜单中选择“设为启动项目”。
按 CtrlF5 编译并运行程序,而不进行调试。
输入字符串并按 Enter 以试用程序,然后按 Enter 退出。
4月19日 周二 19:30 .NET云原生挑战赛直播课-第四课【桂素伟-开发基于Docker的.NET 应用】准时开讲,关注51Aspx视频号预约观看
相关推荐
- 微软Win10/Win11版Copilot上线:支持OpenAI o3推理模型
-
IT之家4月3日消息,科技媒体WindowsLatest昨日(4月2日)发布博文,报道称Windows10、Windows11新版Copilot应用已摘掉Beta帽...
- WinForm 双屏幕应用开发:原理、实现与优化
-
在当今的软件开发领域,多屏幕显示技术的应用越来越广泛。对于WinForm应用程序来说,能够支持双屏幕显示不仅可以提升用户体验,还能满足一些特定场景下的业务需求,比如在演示、监控或者多任务处理等场景...
- OpenJDK 8 安装(openjdk 8 windows)
-
通常OpenJDK8和11都能互相编译和通用。我们建议使用11,但是如果你使用JDK8的话也是没有问题的。建议配置使用OpenJDK,不建议使用OracleJDK,主要是因为版...
- 基于 Linux 快速部署 OpenConnect VPN 服务(ocserv 实战指南)
-
一、前言在如今远程办公和内网穿透需求日益增长的背景下,搭建一套安全、稳定、高效的VPN系统显得尤为重要。OpenConnectServer(ocserv)是一个开源、高性能的VPN服务端软件...
- 巧妙设置让Edge浏览器更好用(edge怎么设置好用)
-
虽然现在新版本的Edge浏览器已经推出,但是毕竟还处于测试的状态中。而Win10系统里面自带的老版Edge浏览器,却越来越不被人重视。其实我们只需要根据实际情况对老版本的Edge浏览器进行一些简单的设...
- 微软开源博客工具Open Live Writer更新:多项Bug修复
-
OpenLiveWriter前身是WindowsLiveWriter,是微软WindowsLive系列软件之一,曾经是博主们非常喜爱的一款所见即所得博文编辑工具,支持离线保存,还支持图像编辑...
- 基于OpenVINO的在线设计和虚拟试穿 | OPENAIGC大赛企业组优秀作品
-
在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。...
- Python open函数详解(python open函数源码)
-
演示环境,操作系统:Win1021H2(64bit);Python解释器:3.8.10。open是Python的一个内置函数,一般用于本地文件的读写操作。用法如下。my_file=open(fi...
- 世界上最好用的Linux发行版之一,OpenSUSE安装及简单体验
-
背景之前无意在论坛里看到openSUSE的Linux发行版,被称为世界上最好用的Linux发行版之一(阔怕),一直想体验一下,于是这期做一个安装和简单体验教程吧。...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
推荐7个模板代码和其他游戏源码下载的网址
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- 微软Win10/Win11版Copilot上线:支持OpenAI o3推理模型
- WinForm 双屏幕应用开发:原理、实现与优化
- 推荐一个使用 C# 开发的 Windows10 磁贴美化小工具
- OpenJDK 8 安装(openjdk 8 windows)
- 基于 Linux 快速部署 OpenConnect VPN 服务(ocserv 实战指南)
- 巧妙设置让Edge浏览器更好用(edge怎么设置好用)
- WPF做一个漂亮的登录界面(wpf页面设计)
- 微软开源博客工具Open Live Writer更新:多项Bug修复
- 基于OpenVINO的在线设计和虚拟试穿 | OPENAIGC大赛企业组优秀作品
- C#开源免费的Windows右键菜单管理工具
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)