C# 13 和 .NET 9 全知道 : 1 你好,C#! .NET! (4)

B站影视 2024-12-31 15:31 3

摘要:在解决方案资源管理器中,右键单击 HelloCS 项目中的任何文件,然后选择在集成终端中打开。在终端中输入以下命令: dotnet run 。终端窗口中的输出将显示运行您应用程序的结果。在 Program.cs 中,在输出消息的语句之后,添加语句以获取 Pro

下一个任务是编译和运行代码:

在解决方案资源管理器中,右键单击 HelloCS 项目中的任何文件,然后选择在集成终端中打开。在终端中输入以下命令: dotnet run 。终端窗口中的输出将显示运行您应用程序的结果。在 Program.cs 中,在输出消息的语句之后,添加语句以获取 Program 类的命名空间名称,将其写入控制台,然后抛出一个新的异常,如下代码所示:string name = typeof(Program).Namespace ?? "";Console.WriteLine($"Namespace: {name}");throw new Exception;在终端中输入以下命令: dotnet run 。

在终端中,您可以按上箭头和下箭头循环浏览之前的命令,然后按左箭头和右箭头编辑命令,最后按回车键运行它们。

在终端窗口中的输出将显示运行您的应用程序的结果,包括编译器定义了一个隐藏的 Program 类,该类具有一个名为 $ 的方法,该方法有一个名为 args 的参数用于传递参数,并且它没有命名空间,如下所示的输出所示:Hello, C#!Namespace: Unhandled exception. System.Exception: Exception of type 'System.Exception' was thrown.at Program.$(String args) in C:\cs13net9\Chapter01-vscode\HelloCS\Program.cs:line 7

让我们添加一个第二个项目,以探索如何处理多个项目:

在终端中,切换到 Chapter01-vscode 目录,如下命令所示:cd ..

在终端中,创建一个名为 AboutMyEnvironment 的新控制台应用程序项目,使用较旧的非顶级程序风格,如以下命令所示:

dotnet new console -o AboutMyEnvironment --use-program-main

良好实践:在终端中输入命令时要小心。在输入可能破坏性命令之前,请确保您在正确的文件夹中!

在终端中,使用 dotnet CLI 将新项目文件夹添加到解决方案中,如以下命令所示:dotnet sln add AboutMyEnvironment

请注意结果,如下所示:

Project `AboutMyEnvironment\AboutMyEnvironment.csproj` added to the solution.在解决方案资源管理器中,在 AboutMyEnvironment 项目中,打开 Program.cs ,然后在 Main 方法中,将现有语句更改为输出当前目录、操作系统版本字符串和 Program 类的命名空间,如以下代码所示:Console.WriteLine(Environment.CurrentDirectory);Console.WriteLine(Environment.OSVersion.VersionString);Console.WriteLine("Namespace: {0}",typeof(Program).Namespace ?? "");在解决方案资源管理器中,右键单击 AboutMyEnvironment 项目中的任何文件,然后选择在集成终端中打开。在终端中,输入命令以运行项目,如下命令所示: dotnet run 。请注意 TERMINAL 窗口中的输出,如以下输出所示:在解决方案资源管理器中,右键单击 AboutMyEnvironmentdotnet run 。请注意 TERMINAL 窗口中的输出,如以下输出所示:C:\cs13net9\Chapter01-vscode\AboutMyEnvironmentMicrosoft Windows NT 10.0.26100.0Namespace: AboutMyEnvironment

一旦您打开多个终端窗口,您可以通过点击右侧面板中它们的名称在它们之间切换。默认情况下,名称将是常见的 shell 之一,如 pwsh、powershell、zsh 或 bash。右键单击并选择重命名以设置其他名称。

当 VS Code,或者更准确地说, dotnet CLI 运行控制台应用程序时,它是从

文件夹中执行的。Visual Studio 从

\bin\Debug\net9.0 文件夹中执行该应用程序。在后面的章节中,当我们处理文件系统时,记住这一点将非常重要。

如果您在 macOS Ventura 上运行该程序,环境操作系统将会不同,如以下输出所示:

Unix 13.5.2

良好实践:尽管源代码,如 .csproj 和 .cs 文件,是相同的,但编译器自动生成的 bin 和 obj 文件夹可能存在不匹配,从而导致错误。如果您想在 Visual Studio 和 VS Code 中打开相同的项目,请在其他代码编辑器中打开项目之前删除临时 bin 和 obj 文件夹。这个潜在问题就是我在本章中要求您为 VS Code 项目创建不同文件夹的原因。

按照以下步骤使用 VS Code 创建解决方案和项目,如表 1.5 所示:

步骤描述命令创建一个解决方案文件夹。mkdir 2. 更改到文件夹。cd 在文件夹中创建一个解决方案文件。dotnet new sln4. 使用模板创建文件夹和项目。dotnet new console -o

5. 将文件夹及其项目添加到解决方案中。dotnet sln add

6. 重复步骤 4 和 5 来创建并添加其他项目。
7. 使用 VS Code 打开当前文件夹路径 ( . ),该路径包含解决方案。code .

控制台应用程序 / console 项目只是项目模板的一种。在本书中,您还将使用下表 1.6 中所示的以下项目模板创建项目:

Visual Studiodotnet new骑手 - 类型控制台应用程序console控制台应用程序类库classlib类库xUnit 测试项目xunit单元测试项目 – xUnitASP.NET Core 空项目webASP.NET Core Web 应用程序 - 空白Blazor Web 应用程序blazorASP.NET Core Web 应用程序 – Blazor Web 应用程序ASP.NET Core Web APIwebapiASP.NET Core Web 应用程序 – Web APIASP.NET Core Web API(原生 AOT)webapiaotASP.NET Core Web 应用程序 – Web API(原生 AOT)

表 1.6:各种代码编辑器的项目模板名称

将任何类型的新项目添加到解决方案的步骤是相同的。只有项目模板的类型名称不同,有时还有一些命令行开关用于控制选项。如果这些开关和选项与默认值不同,我将始终指定它们应该是什么。

项目模板默认值、选项和开关的摘要可以在这里找到:https://github.com/markjprice/cs13net9/blob/main/docs/ch01-project-options.md。

Git 是一个常用的源代码管理系统。GitHub 是一家公司、网站和桌面应用程序,使得管理 Git 变得更加容易。微软在 2018 年收购了 GitHub,因此它将与微软工具实现更紧密的集成。

我为这本书创建了一个 GitHub 仓库,并将其用于以下目的:

存储可以在印刷出版日期后维护的书籍解决方案代码。提供额外的材料以扩展书籍,例如勘误修正、小改进、有用链接列表以及关于无法在印刷书中容纳的主题的可选部分。为了给读者提供一个联系我的地方,以便他们在书籍上遇到问题时可以联系我。

良好实践:我强烈建议大家在尝试本书中的任何编码任务之前,先查看勘误表、改进、出版后更改和常见错误页面。您可以在以下链接找到它们:https://github.com/markjprice/cs13net9/blob/main/docs/errata/README.md。

本书的 GitHub 仓库中的解决方案代码包括每个章节的文件夹,可以使用以下任一代码编辑器打开:

Visual Studio 或 Rider:打开 .sln 解决方案文件。VS Code:打开包含解决方案文件的文件夹。

第 1 到 11 章各自有一个名为 ChapterXX.sln 的解决方案文件,其中 XX 是章节编号 01 到 11。第 12 到 15 章共享一个名为 ModernWeb.sln 的解决方案文件。

.sln 解决方案文件格式是微软专有的文件格式,冗长、难以阅读,并使用全局唯一标识符 (GUID) 来引用项目和解决方案的其他组件。一个基于 XML 的新格式,旨在更简单、更易于阅读,即将推出,并将使用 .slnx 文件扩展名。您可以通过以下链接了解更多信息:https://github.com/dotnet/sdk/issues/40913。

VS Code 与 Git 集成,但它将使用您操作系统的 Git 安装,因此您必须先安装 Git 2 或更高版本,然后才能使用这些功能。

您可以从以下链接安装 Git: https://git-scm.com/download。

如果您喜欢使用图形用户界面,可以从以下链接下载 GitHub Desktop: https://desktop.github.com。

让我们克隆书籍解决方案代码库。在接下来的步骤中,您将使用 VS Code 终端,但您可以在任何命令提示符或终端窗口中输入命令:

在您的 user 或 Documents 文件夹中,或您想要存储 Git 仓库的任何地方创建一个名为 Repos-vscode 的文件夹。在命令提示符或终端中打开 Repos-vscode 文件夹,然后输入以下命令:git clone https://github.com/markjprice/cs13net9.git

请注意,克隆所有章节的所有解决方案将需要大约一分钟的时间,请耐心等待。

寻求帮助

获取有关 Microsoft 开发工具和平台帮助的权威资源在 Microsoft Learn 的技术文档中,您可以通过以下链接找到它:https://learn.microsoft.com/zh-cn/docs。

“One of the most ambitious and impactful projects our engineers have built recently is Ask Learn, an API that provides generative AI capabilities to Microsoft Q&A.” - Bob Tabor, Microsoft’s Skilling organization

您可以在以下链接中阅读相关内容:

官方的 Microsoft .NET 文档需要涵盖所有版本。文档中显示的默认版本始终是最新的 GA 版本。

例如,在 2024 年 11 月到 2025 年 11 月之间,文档页面中显示的默认版本将是.NET 9。在 2025 年 11 月到 2026 年 11 月之间,默认版本将是.NET 10。以下链接将根据当前日期自动指向当前版本:

在 2025 年 11 月之后,要查看专门针对.NET 9 的文档页面,请在链接末尾添加 ?view=net-9.0 。例如,使用以下链接:

https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.stringsyntaxattribute?view=net-9.0

本书中的所有文档链接均未指定版本。如果您想强制文档显示 .NET 8 的版本,因为您需要针对 LTS 版本(三年),而不是 STS 版本(18 个月)的 .NET 9,则在链接末尾添加 ?view=net-8.0 。

您可以通过在链接末尾添加 #applies-to 来检查 .NET 功能支持哪些版本,例如:

https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.stringsyntaxattribute#applies-to

因此,我们可以看到 stringSyntax 属性仅在 .NET 7 或更高版本中可用。

在命令提示符下,您可以向 dotnet 工具请求有关其命令的帮助。语法是:

dotnet help

这将导致您的网页浏览器打开一个关于指定命令的文档页面。常见的 dotnet 命令包括 new 、 build 、 run 等等。

警告! dotnet help new 命令在 .NET Core 3.1 到 .NET 6 中有效,但在 .NET 7 或更高版本中返回错误: Specified command 'new' is not a valid SDK command. Specify a valid SDK command. For more inFormation, run dotnet help. 希望 .NET 能尽快修复这个错误!

另一种帮助是命令行文档。它遵循以下语法:

dotnet -?|-h|--help

例如, dotnet new -? 或 dotnet new -h 或 dotnet new --help 在命令提示符下输出有关 new 命令的文档。

如您现在所期待的, dotnet help help 为 help 命令打开一个网页浏览器,而 dotnet help -h 在命令提示符下输出 help 命令的文档!

让我们尝试一些例子:

要在网页浏览器窗口中打开 dotnet build 命令的官方文档,请在命令提示符或 VS Code 终端中输入以下内容,并注意在您的网页浏览器中打开的页面:dotnet help build

要在命令提示符下获取帮助输出,请使用 -? 、 -h 或 --help 标志,如以下命令所示:

dotnet build -?

您将看到以下部分输出:

Description:.NET BuilderUsage:dotnet build [...] [options]Arguments: The project or solution file to operate on. If a file is not specified, the command will search the current directory for one.Options:--ucr, --use-current-runtime Use current runtime as the target runtime.-f, --framework The target framework to build for. The target framework must also be specified in the project file....-?, -h, --help Show command line help.重复以下命令的两种帮助请求: add , help , list , new 和 run ,请记住,由于.NET 7 中引入的一个错误, new 可能不会显示其网页。

代码编辑器最有用的功能之一是转到定义(F12)。它在 VS Code、Visual Studio 和 Rider 中可用。它将通过读取已编译程序集中的元数据来显示类型或成员的公共定义。

一些工具,例如 ILSpy .NET 反编译器,甚至会将元数据和 IL 代码反向工程回 C# 或其他语言。

一个类似且相关的功能被称为“转到实现”(Ctrl + F12)。它将显示实际的源代码(如果嵌入的话),而不是读取元数据或反编译,使用可选的源链接功能。

警告!“转到定义”应该转到成员或类型的反编译元数据。但是如果您之前查看过源链接,则会转到该链接。“转到实现”应该转到成员或类型的源链接实现。但是如果您已禁用源链接,则会转到反编译元数据。

图 1.11:禁用“转到定义”功能的源链接

定义可以从元数据反向工程生成,或者如果启用的话,可以从原始源代码加载。就我个人而言,我发现元数据中的代码更有用,正如你即将看到的。在本节结束时,尝试将源链接选项重新打开,以查看差异。

在 HelloCS 项目中,在 Program.cs 的底部,输入以下语句以声明一个名为 z 的整数变量:int z;点击 int ,右键点击 int ,然后在 Visual Studio 或 VS Code 中选择转到定义。在 Rider 中,选择转到 | 转到声明或用法。在出现的代码窗口中,您可以看到 int 数据类型是如何定义的,如下代码所示:#region Assembly System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a// C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.0\ref\net9.0\System.Runtime.dll#endregion#nullable enableusing System.Diagnostics.CodeAnalysis;using System.Globalization;using System.Numerics;using System.Runtime.CompilerServices;namespace System{public readonly struct Int32 : IComparable,IComparable, IConvertible, ...{public const Int32 MaxValue = 2147483647;public const Int32 MinValue = -2147483648;...}}

您可以看到 int :

使用 struct 关键字定义。在 System.Runtime 程序集内。在 System 命名空间中。被命名为 Int32 。因此,是 System.Int32 类型的别名。实现接口,例如 IComparable 。具有最大值( 2147483647 )和最小值( -2147483648 )的常量值。具有如 Parse 等方法(在前面的代码中不可见)。

目前,“转到定义”功能对您来说并不是很有用,因为您还不知道这些信息的含义。在本书的第一部分结束时,该部分包括第 2 到第 6 章,并教授您 C#语言的知识,您将了解足够的信息,使此功能变得非常方便。

在代码编辑器窗口中,向下滚动以找到带有单个 string 参数的 Parse 方法,如下代码所示:展开代码并查看记录此方法的注释,如图 1.12 所示:

图 1.12:带有单个字符串参数的 Parse 方法的注释

在评论中,您将看到微软已记录以下内容:

描述该方法的摘要。可以传递给该方法的参数,如 string 值。该方法的返回值,包括其数据类型。调用此方法时可能发生的三个异常,包括 ArgumentNullException 、 FormatException 和 OverflowException 。现在,我们知道我们可以选择将对该方法的调用包装在 try 语句中,并选择要捕获的异常。

在本书的代码中,当调用一个方法时,我经常明确指定命名参数,以帮助您了解发生了什么。例如,我在以下代码中指定了参数 format 和 arg0 的名称:

Console.WriteLine(format: "Value is {0}.", arg0: 19.8);

内联提示,也称为嵌入提示,显示参数的名称,而无需您输入它们,如图 1.13 所示:

图 1.13:配置内联提示,即内嵌提示

大多数代码编辑器都有此功能,您可以永久启用或仅在按住像 Alt + F1 或 Ctrl 这样的键组合时启用:

在 Visual Studio 中,导航到工具 | 选项,然后选择文本编辑器 | C# | 高级,向下滚动到内联提示部分,选中显示内联参数名称提示复选框,然后点击确定。在 VS Code 中,导航到 文件 | 首选项 | 设置,搜索 inlay ,选择 C# 过滤器,然后选中 显示内联参数名称提示 复选框。在 Rider 中,进入设置,导航到 编辑 | 内联提示 | C# | 参数名称提示。

希望你迫不及待想知道这一切意味着什么!

再耐心等一会儿。你快要到达这一章的结尾了,在下一章中,你将深入了解 C#语言的细节。但首先,让我们看看你还可以在哪里寻求帮助。

Stack Overflow 是获取困难编程问题答案的最受欢迎的第三方网站。让我们看一个例子:

您可以使用高级搜索选项在 Google 上搜索,以增加找到所需内容的可能性:

请访问以下链接进入 Google: https://www.google.com/.使用简单的 Google 查询搜索关于 garbage collection 的信息,并注意在看到计算机科学中垃圾收集的维基百科定义之前,您可能会看到很多关于您所在地区垃圾收集服务的广告!通过将搜索限制在有用的网站上,例如 Stack Overflow,来改善搜索,去除我们可能不关心的语言,例如 C++、Rust 和 Python,或明确添加 C# 和 .NET,如以下搜索查询所示:garbage collection site:stackoverflow.com +C# -Java

有时候,您可以通过观察微软团队如何实现 .NET 来学到很多东西。整个 .NET 代码库的源代码可以在公共 GitHub 仓库中找到。例如,您可能知道有一个内置属性用于验证电子邮件地址。

让我们在代码库中搜索“email”这个词,看看我们能否找出它是如何工作的:

使用您首选的网页浏览器导航到 https://github.com/search。点击高级搜索。在搜索框中,输入 email 。在这些存储库框中,输入 dotnet/runtime 。(您可能想要搜索的其他存储库包括 dotnet/core 、 dotnet/aspnetcore 、 dotnet/wpf 和 dotnet/winforms 。)在这个语言框中,选择 C#。在页面右上角,注意高级查询是如何为您编写的。点击搜索,然后点击代码过滤器,注意结果包括 EmailAddressAttribute ,如图 1.14 所示:

图 1.14:在 dotnet/runtime 仓库中进行高级电子邮件搜索

// only return true if there is only 1 '@' character// and it is neither the first nor the last characterint index = valueAsString.IndexOf('@');returnindex > 0 &&index != valueAsString.Length - 1 &&index == valueAsString.LastIndexOf('@');

关闭浏览器。

当您阅读 API 参考文档时,您通常希望查看实际的源代码。对于启用了 Source Link 的 .NET API,具有可访问的 PDB,并托管在公共 GitHub 存储库中的 API,源代码的链接会包含在定义元数据中。例如, String 类文档页面现在有这个新的源链接,它的 IndexOf 方法有一个指向其另一个源文件的源链接,如图 1.15 所示:

图 1.15:带有源文件链接的文档

近年来编码和开发领域最大的变化之一是生成性人工智能(AI)工具的出现,这些工具可以帮助完成编码任务,例如完成代码语句、实现整个函数、编写单元测试以及为现有代码建议调试修复。

您可以在 2023 年 Stack Overflow 开发者调查中阅读开发者对 AI 工具的看法:“44%的开发者现在在他们的开发过程中使用 AI 工具,26%计划很快使用”(https://stackoverflow.blog/2023/06/14/hype-or-not-developers-have-something-to-say-about-ai/):

“从研究到调试再到文档编写,开发者们正在使用生成式人工智能来节省在工作中处理各种繁琐任务的时间。最大的应用案例是编写代码。在最近的 Stack Overflow 开发者调查中,82.55%的开发者报告使用生成式人工智能。”

ChatGPT 目前为个人提供几种模型:4o mini(免费)、4o(免费但有限制)以及 4o,具有 5 倍的请求量和其他好处,如提前访问新功能和 DALL·E 图像生成(每月 20 美元)。它还为企业提供定价。您可以在以下链接查看他们的定价: https://openai.com/chatgpt/pricing/.

假设您需要编写一个 C# 函数来验证电子邮件地址。您可能会去 ChatGPT 并输入以下提示:

write a c# function to validate an email address

它以一个完整的类和方法进行响应,如图 1.16 所示:

图 1.16:ChatGPT 编写一个函数来验证电子邮件地址

它接着提供了代码的解释以及如何调用该函数的示例,如以下代码所示:

bool isValid = EmailValidator.IsValidEmail("test@example.com");Console.WriteLine(isValid ? "Valid" : "Invalid");

但像 ChatGPT 这样的通用生成式 AI 是 C# 程序员的最佳伙伴吗?

微软为程序员提供了一项专门的服务,名为 GitHub Copilot,可以直接在您的代码编辑器中帮助自动完成代码。它为代码编辑器提供了插件,包括 Visual Studio、VS Code 和基于 JetBrains IntelliJ 的 IDE。

我个人非常喜欢 Copilot 的品牌形象。它清楚地表明你是飞行员。你最终负责“驾驶飞机”。但对于简单或无聊的部分,你可以暂时把它交给你的副驾驶,同时随时准备在需要时重新掌控。

GitHub Copilot 对学生、教师和一些开源项目维护者免费。对于其他人,它提供 30 天的免费试用,之后个人每月收费 10 美元或每年 100 美元。一旦您拥有账户,就可以注册等待名单,以获取更高级的实验性 GitHub Copilot 功能。

您应该在线检查各种代码编辑器可用的 Copilot 功能。正如您所想,这个世界变化迅速,我今天在书中写的某些内容在您阅读时可能已经过时:https://github.com/features/copilot。

JetBrains 有自己的 GitHub Copilot 等效产品,名为 AI Assistant,您可以在以下链接中阅读相关内容:https://blog.jetbrains.com/idea/2023/06/ai-assistant-in-jetbrains-ides/.

那么今天 GitHub Copilot 能为您做些什么呢?

想象一下,您刚刚添加了一个名为 Product.cs 的新类文件。您点击 Product 类内部,按下 Enter 键插入一个空行,然后停顿一秒钟,思考您需要输入的内容……然后 GitHub Copilot 生成了一些灰色的示例代码,如图 1.17 所示:

图 1.17:GitHub Copilot 建议如何定义一个 Product 类

此时,您可以浏览代码,如果它接近您想要的,只需按 Tab 键插入全部,或按 Alt + .(点)在其他建议之间切换。

有时候,它离你所需的东西太远,你最好完全忽略它的建议,自己写。但是通常,它那里有一些可用的东西,或者让你想起你需要使用的语法。有时候,写出正好符合你需求的几十行代码,感觉就像魔法一样。

微软将其人工智能工具与公共 GitHub 存储库中的代码进行训练,包括我自 2016 年以来为本书所有版本创建的所有存储库。这意味着它可以为本书的读者提供出乎意料的准确代码补全建议,包括我在代码中频繁使用的流行文化引用。就像我,马克·J·普赖斯,是“机器中的幽灵”,引导你的编码。

很容易想象一个定制的 ChatGPT,它已经吸收了所有官方的 Microsoft .NET 文档、关于 .NET 的每一篇公开博客文章,甚至可能还有数百本关于 .NET 的书籍,然后与它进行对话以查找错误或建议如何解决编程问题。

您可以通过以下链接注册 GitHub Copilot: https://github.com/github-copilot/signup/.

良好实践:在以下链接了解如何将 Copilot 用作您的编码 GPS:https://devblogs.microsoft.com/visualstudio/using-github-copilot-as-your-coding-gps/.

这里有一些关于使用人工智能进行编码的更多链接:

初学者使用 GitHub Copilot 进行提示工程的指南: https://dev.to/github/a-beginners-guide-to-prompt-engineering-with-github-copilot-3ibpThe Register 有关人工智能的文章:https://www.theregister.com/2024/01/27/ai_coding_automatic/StackOverflow 2024 调查 - 代码编辑器 / IDE: https://survey.stackoverflow.co/2024/technology#1-integrated-development-environmentStackOverflow 2024 调查 - AI 搜索工具: https://survey.stackoverflow.co/2024/technology#1-ai-search-and-developer-tools

尽管这些工具可能很有帮助,但它们有时也会妨碍你,尤其是在学习时,因为它们有时会在不告诉你的情况下为你工作。如果你自己至少不做几次那项工作,你就无法完全学习。

在 Visual Studio 中配置 C#的 IntelliSense:

导航到 工具 | 选项。在选项对话框树视图中,导航到文本编辑器 | C# | 智能感知。点击标题栏中的 ? 按钮查看文档。

在 Visual Studio 中配置 GitHub Copilot:

导航到 工具 | 选项。在选项对话框树视图中,导航到 GitHub | Copilot。将全局启用设置为真或假,然后点击确定。

在 VS Code 中禁用 GitHub Copilot:

在状态栏的右侧,通知图标的左侧,点击 GitHub Copilot 图标。在弹出窗口中,点击全局禁用。要启用它,请再次点击 GitHub Copilot 图标,然后点击全局启用。

有关 Rider IntelliSense 的帮助,请参阅以下链接:https://www.jetbrains.com/help/rider/Auto-Completing_Code.xhtml。

现在让我们通过尝试回答一些问题、进行一些实践操作,以及更深入地探讨本章所涵盖的主题,来测试你的知识和理解。

在线材料可以是我为本书撰写的额外内容,也可以是对微软或第三方创建的内容的引用。

您可以在以下链接查看各种平台上最新的 .NET 版本以及官方支持的版本:https://versionsof.net。

如果您需要了解有关旧版 .NET Framework 的更多支持信息,可以通过以下链接阅读:https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework。

.NET 每年发布新版本。一些开发者在新版本发布后立即开始升级,而其他人则更喜欢等到当前版本达到支持结束时再升级。升级涉及几个重要的考虑因素,您可以在以下链接中阅读相关内容:

尝试回答以下问题,记住虽然大多数答案可以在本章中找到,但您应该进行一些在线研究或编写代码来回答其他问题:

Visual Studio 比 VS Code 更好吗?.NET 5 及更高版本是否优于.NET Framework?什么是 .NET Standard,它为什么仍然重要?为什么程序员可以使用不同的语言(例如 C# 和 F#)来编写在 .NET 上运行的应用程序?什么是顶级程序,如何访问任何命令行参数?.NET 控制台应用程序的入口点方法名称是什么,如果不使用顶级程序特性,应该如何显式声明?Program 类在顶级程序中定义在哪个命名空间?您会在哪里寻找 C#关键字的帮助?您首先会在哪里寻找常见编程问题的解决方案?在让人工智能为您编写代码后,您应该做什么?

附录,知识测试问题的答案,可以从 GitHub 仓库的 README 文件中的链接下载:https://github.com/markjprice/cs13net9。

一本印刷书籍是一个精心策划的体验。我尝试找到在这本书中包含主题的正确平衡。我所写的其他内容可以在本书的 GitHub 仓库中找到。

我相信这本书涵盖了 C#和.NET 开发人员应该具备或了解的所有基本知识和技能。一些较长的示例最好作为链接包含到微软文档或第三方文章作者的内容中。

请使用以下页面上的链接了解本章所涵盖主题的更多细节:

https://github.com/markjprice/cs13net9/blob/main/docs/book-links.md#chapter-1---hello-c-welcome-net

设置您的开发环境。在一篇在线文章中讨论了现代 .NET、.NET Core、.NET Framework、Xamarin 和 .NET Standard 之间的相似性和差异。使用 Visual Studio 和 VS Code 以及 .NET SDK CLI 创建了一些简单的控制台应用程序,并将其分组在一个解决方案中。学习如何从该书的 GitHub 仓库下载解决方案代码。学会了如何寻求帮助。这可以通过传统方式,例如使用帮助命令开关、文档和文章,或者通过现代方式,与编码专家 AI 进行对话或使用基于 AI 的工具来执行“繁琐工作”。

在下一章中,您将学习如何“说”C#。

来源:启辰8

相关推荐