C# 初体验:“Hello World” 诞生记

360影视 2025-02-04 09:21 2

摘要:C# 是一种由微软开发的面向对象的编程语言,发音为 “C Sharp” 。它于 2000 年首次发布,在微软的技术生态系统中占据重要地位。C# 融合了 C 和 C++ 的强大功能,同时又去除了一些复杂特性,如没有宏以及不允许多重继承 ,它具有现代、通用、类型安

什么是 C#

C# 是一种由微软开发的面向对象的编程语言,发音为 “C Sharp” 。它于 2000 年首次发布,在微软的技术生态系统中占据重要地位。C# 融合了 C 和 C++ 的强大功能,同时又去除了一些复杂特性,如没有宏以及不允许多重继承 ,它具有现代、通用、类型安全、自动垃圾回收等特点。

C# 是专为公共语言基础结构(CLI)设计的,CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。这使得 C# 具备强大的跨平台能力,你可以使用 C# 编写一次代码,然后部署到多个操作系统上,包括 Windows、Linux 和 macOS 等。

如今,C# 的应用领域极为广泛,涵盖了多个行业和技术方向:

游戏开发

:借助 Unity 游戏引擎,C# 成为创建跨平台游戏的主力编程语言,从热门的移动游戏到 PC 端大型游戏,甚至是前沿的 VR 和 AR 游戏,都能看到 C# 的身影。比如,《纪念碑谷》这款以独特视觉效果和烧脑解谜玩法闻名的游戏,其开发就大量运用了 C# 语言,通过 C# 与 Unity 引擎的紧密配合,实现了流畅的交互体验和精美的画面呈现。

Web 开发

:ASP.NET是 C# 在 Web 开发领域的核心框架,利用 C# 和ASP.NET,开发者能够构建功能强大的 Web 应用程序和网站。无论是企业级的大型应用,还是个人展示的博客网站,C# 都以其稳定高效的性能成为可靠选择。像 Stack Overflow 这样全球知名的技术问答社区,其部分后端逻辑就是用 C# 结合ASP.NET框架实现的,支撑着海量用户的访问和数据交互。

后端开发

:无论是桌面应用的后端逻辑,还是微服务、APIs 或者云服务,C# 凭借强大的类型安全和丰富的库支持,让开发者能够快速搭建健壮的后端系统。以 Microsoft Azure 云服务为例,许多基于云的应用和服务都是使用 C# 开发,充分发挥了 C# 在后端开发中的优势。

桌面应用开发

:Windows Forms 和 WPF(Windows Presentation Foundation)是 C# 在桌面应用开发领域的两大支柱,帮助开发者打造出用户界面友好、性能卓越的桌面应用程序。比如 Visual Studio,作为一款功能强大的集成开发环境,就是使用 C# 结合 WPF 框架开发而成,为全球开发者提供了高效的开发工具。

物联网(IoT)

:随着物联网技术的兴起,C# 也在这一领域崭露头角,无论是嵌入式系统还是智能设备,都可以使用 C# 作为编程语言。例如,一些智能家居控制系统,通过 C# 编写程序实现设备之间的互联互通和智能控制。

人工智能与机器学习

:虽然 C# 本身不是机器学习的首选语言,但通过与 Python 的交互,以及利用诸如ML.NET这样的框架,C# 开发者也能在 AI 领域施展拳脚。比如,在一些需要结合人工智能技术的企业级应用中,可以使用 C# 作为主要开发语言,并借助ML.NET框架实现简单的机器学习功能。

搭建开发环境

在开始编写 “Hello World” 程序之前,我们需要先搭建好 C# 的开发环境。主要包括安装 Visual Studio 和.NET SDK。

安装 Visual Studio

Visual Studio 是微软提供的一款功能强大的集成开发环境(IDE),它为 C# 开发提供了丰富的工具和功能,包括代码编辑、调试、智能提示等,能极大地提高开发效率。

你可以按照以下步骤下载并安装 Visual Studio:

打开浏览器,访问微软官方网站Visual Studio 下载页面 。

在下载页面中,你会看到有三个主要版本可供选择:

Visual Studio Community(社区版)

:这是一个免费的版本,适用于个人开发者、开源项目、学生和小型团队。它包含了丰富的功能,能够满足大多数初学者和小型项目的需求。

Visual Studio Professional(专业版)

:面向专业开发者,提供了更多高级功能,如高级代码分析、团队协作工具等,适合专业开发团队使用。

Visual Studio Enterprise(企业版)

:针对大型企业和团队,提供了全面的开发和测试工具,包括高级的应用程序生命周期管理功能等。

根据你的需求选择对应的版本,点击 “下载” 按钮,下载对应的安装程序。例如,如果你是个人开发者进行学习和实践,选择 “Visual Studio Community” 版,点击其下方的 “下载” 按钮,下载名为 “vs_community.exe” 的安装程序。

下载完成后,找到下载的安装程序文件(例如 “vs_community.exe”),双击运行它。

在弹出的用户帐户控制提示中,点击 “是”,允许安装程序对计算机进行更改。

安装向导启动,点击 “继续” 按钮,开始安装过程。这一步会下载并准备安装所需的组件,可能需要一些时间,请耐心等待。

在安装选项配置界面,你可以根据自己的需求选择安装的工作负载。如果只是学习 C# 基础编程,建议至少选择 “使用 C# 的桌面开发” 工作负载,它包含了开发 C# 桌面应用所需的基本工具和库。你还可以根据需要选择其他工作负载,如 “Web 和云” 用于开发 Web 应用和云服务,“游戏开发” 用于开发游戏等。此外,你可以点击 “安装位置” 旁边的 “更改” 按钮,选择安装 Visual Studio 的目标文件夹。完成选择后,点击 “安装” 按钮。

安装程序开始下载并安装你选择的组件,这个过程可能需要较长时间,具体取决于你的网络速度和计算机性能。在安装过程中,你可以看到安装进度和状态信息。

安装完成后,点击 “启动” 按钮,即可启动 Visual Studio。首次启动时,可能需要进行一些初始化设置,如登录微软账号(如果没有账号,可以选择 “以后再说” 跳过此步骤)、选择默认的开发设置等。

安装.NET SDK

.NET SDK(软件开发工具包)包含了编译、运行 C# 程序所需的各种工具和库。在安装 Visual Studio 时,通常会自动安装相应版本的.NET SDK 。但如果在安装 Visual Studio 时没有安装,或者你需要安装特定版本的.NET SDK,也可以从微软官网单独下载安装。

你可以按照以下步骤安装.NET SDK:

打开浏览器,访问微软官方的.NET 下载页面 。

在下载页面中,你会看到不同版本的.NET SDK 可供下载。微软会定期发布新的版本,建议选择最新的长期支持(LTS)版本,以获得更好的稳定性和支持。例如,当前最新的长期支持版本是.NET 8.0,你可以点击对应的 “下载” 按钮进行下载。下载的文件可能是一个安装程序,具体文件名根据你的操作系统和下载的版本而有所不同,例如在 Windows 系统上,下载的可能是 “dotnet-sdk-8.0.xxxxx-win-x64.exe” 这样的文件。

下载完成后,找到下载的安装程序文件,双击运行它。

在安装向导中,按照提示进行操作,一般只需要点击 “下一步”、“安装” 等按钮,接受默认的安装设置即可完成安装。在安装过程中,可能会出现一些许可协议页面,你需要阅读并同意协议才能继续安装。

安装完成后,你可以通过命令行来验证.NET SDK 是否安装成功。打开命令提示符(在 Windows 系统中,可以通过搜索 “命令提示符” 或 “CMD” 来找到它),输入 “dotnet --info” 命令,然后按下回车键。如果.NET SDK 安装成功,你会看到关于.NET SDK 的版本信息、安装路径等详细信息。

创建 C# 项目

开发环境搭建完成后,我们就可以在 Visual Studio 中创建一个 C# 项目了。这里以创建一个控制台应用项目为例,控制台应用程序是一种在命令行界面运行的程序,非常适合初学者学习和练习基本的编程概念。

打开 Visual Studio

安装完成后,在开始菜单中找到 “Visual Studio” 程序,点击打开它。首次启动 Visual Studio 时,可能会进行一些初始化操作,如加载组件、检查更新等,这个过程可能需要一些时间,请耐心等待。初始化完成后,你将看到 Visual Studio 的起始页,这里提供了一些常用的操作选项,如新建项目、打开项目等。

新建项目

在 Visual Studio 的起始页中,点击 “创建新项目” 选项。如果起始页没有显示,你也可以通过点击菜单栏中的 “文件”,然后选择 “新建”->“项目” 来创建新项目。

此时会弹出 “创建新项目” 的窗口,在这个窗口中,你可以看到各种项目模板分类。在搜索框中输入 “控制台”,然后从 “语言” 列表中选择 “C#”,从 “平台” 列表中选择 “所有平台” 。在项目模板列表中,选择 “控制台应用” 模板,然后点击 “下一步”。这个模板会为我们创建一个基础的控制台应用程序框架,包含了程序运行所需的基本结构和代码。

接下来进入 “配置新项目” 的对话框,在 “项目名称” 框中输入你想要的项目名称,比如 “HelloWorld” 。项目名称可以使用字母、数字和下划线,但不能以数字开头,并且尽量使用有意义的名称,以便于理解项目的用途。在 “位置” 框中,选择项目保存的路径,你可以点击 “浏览” 按钮来选择其他文件夹。如果你希望将解决方案和项目放在同一目录下,可以勾选 “将解决方案和项目放在同一目录中” 选项。另外,在 “解决方案名称” 框中,Visual Studio 会默认使用与项目名称相同的名称,你也可以根据需要进行修改。解决方案是一个或多个项目的集合,它可以帮助你更好地组织和管理项目。完成这些设置后,点击 “下一步”。

在随后出现的 “其他信息” 对话框中,选择你想要使用的.NET 版本。如前文所说,建议选择最新的长期支持(LTS)版本,以获得更好的稳定性和支持。比如,如果你安装了.NET 8.0,就可以选择它。最后,点击 “创建” 按钮,Visual Studio 将根据你选择的模板和设置,为你创建一个新的 C# 控制台应用项目,并打开项目的代码文件。

编写 “Hello World” 代码

在创建好的项目中,Visual Studio 会自动为我们生成一些基础代码,我们只需要在指定位置添加我们的 “Hello World” 代码即可。找到名为 “Program.cs” 的文件,这是 C# 控制台应用程序的主要代码文件,打开它,你会看到如下代码:

using System;

namespace HelloWorld

{

internal class Program

{

static void Main(string args)

{

}

}

}

认识代码结构

让我们先来认识一下这段代码的结构:

引入 System 命名空间

:using System; 这行代码使用using关键字引入了System命名空间。System命名空间是 C# 中非常重要的一个命名空间,它包含了许多基本类型和常用功能的类,比如控制台输入输出、数学运算、日期时间处理等。引入System命名空间后,我们就可以直接使用其中的类,而不需要写完整的命名空间路径。例如,如果没有这行代码,我们在使用Console类时,就需要写成System.Console,而引入System命名空间后,我们可以直接使用Console。

定义类

:internal class Program 定义了一个名为Program的类,类是 C# 中面向对象编程的基本单元,它可以包含数据成员(字段、属性等)和函数成员(方法、构造函数等)。这里的internal是访问修饰符,表示这个类只能在当前程序集(项目)内部被访问。

作为程序入口方法

:static void Main(string args) 是程序的入口方法,所有 C# 控制台应用程序都必须有一个Main方法,它是程序执行的起点。static关键字表示这是一个静态方法,不需要创建类的实例就可以调用。void表示这个方法没有返回值。string args是一个字符串数组参数,用于接收命令行参数,如果在运行程序时从命令行传入了参数,这些参数就会存储在这个数组中。

编写代码

现在,我们在Main方法中添加一行代码,让程序输出 “Hello World”:

using System;

namespace HelloWorld

{

internal class Program

{

static void Main(string args)

{

Console.WriteLine("Hello World");

}

}

}

Console.WriteLine("Hello World"); 这行代码调用了Console类的WriteLine方法,Console类是System命名空间中的一个类,用于控制台的输入输出操作。WriteLine方法的作用是将指定的文本输出到控制台,并在输出后换行。这里我们将字符串 “Hello World” 作为参数传递给WriteLine方法,所以程序运行时就会在控制台输出 “Hello World”。

运行程序启动运行

代码编写完成后,就可以运行我们的 “Hello World” 程序了。在 Visual Studio 的工具栏上,点击 “开始” 按钮,它的图标是一个绿色三角形,就像播放按钮一样 ,或者直接按下快捷键 F5 。这时候,Visual Studio 会先对项目进行编译,将我们编写的 C# 代码转换为计算机能够理解的中间语言(IL)代码,然后再由公共语言运行时(CLR)将 IL 代码进一步编译成机器码并执行。

如果一切顺利,你会看到一个控制台窗口弹出,里面显示着 “Hello World!” ,这就表示你的第一个 C# 程序成功运行啦!这简单的几个字符,是你踏入 C# 编程世界的第一步,也是你未来开发各种复杂应用程序的基础。

错误处理

不过,在实际运行过程中,可能会遇到各种错误。比如,如果你不小心拼错了单词,或者忘记了添加分号,又或者没有正确引用命名空间,程序就无法正常运行。当出现错误时,Visual Studio 会在 “错误列表” 窗口中显示详细的错误信息,帮助你定位和解决问题。

例如,如果你把 “Console.WriteLine (“Hello World”);” 写成了 “Console.WriteLne (“Hello World”);” ,将 “WriteLine” 拼错成了 “WriteLne” ,那么在运行程序时,“错误列表” 窗口就会显示类似 “当前上下文中不存在名称 “WriteLne”” 这样的错误提示 。通过这个提示,你就能知道是代码中的方法名写错了,然后回到代码中进行修改。

再比如,如果你忘记添加 “using System;” 这行代码,而直接使用 “Console” 类,就会出现 “当前上下文中不存在名称 “Console”” 的错误,因为没有引入 “System” 命名空间,编译器就不知道 “Console” 是什么。这时,你只需要添加 “using System;” 就可以解决这个问题。

常见的错误类型还有很多,比如语法错误、类型不匹配错误、命名空间引用问题等。遇到错误时,不要慌张,仔细阅读错误提示信息,它会给你很多有用的线索,帮助你找到问题所在。同时,你也可以通过搜索引擎查找相关的解决方案,或者向其他有经验的开发者请教。随着你编程经验的积累,你会越来越熟练地处理这些错误,写出更加健壮的代码。

原理剖析

在成功运行 “Hello World” 程序后,深入了解其背后的原理,可以帮助我们更好地掌握 C# 编程。C# 程序的执行过程涉及两个关键阶段:编译阶段和运行阶段。

编译阶段

在编译阶段,我们编写的 C# 代码首先会被 C# 编译器(如 csc.exe)编译成中间语言(IL,Intermediate Language)代码 。IL 代码是一种与平台无关的代码,它类似于汇编语言,但比汇编语言更高级,并且不依赖于特定的硬件平台。这意味着,无论你最终将程序部署到 Windows、Linux 还是 macOS 系统上,编译得到的 IL 代码都是相同的。

以 “Hello World” 程序为例,当我们在 Visual Studio 中点击 “生成” 时,编译器会将我们的 C# 代码:

编译成 IL 代码。IL 代码以一种特定的格式存储在程序集中,程序集可以是 DLL(动态链接库)文件或 EXE(可执行文件) 。如果你想查看生成的 IL 代码,可以使用一些工具,如 IL Disassembler(ildasm.exe) 。通过这个工具打开生成的程序集,你可以看到类似下面的 IL 代码(简化示例):

.method private hidebysig static void Main(string args) cil managed

{

.entrypoint

.maxstack 8

IL_0000: ldstr "Hello World"

IL_0005: call void [System.Console]System.Console::WriteLine(string)

IL_000a: ret

}

这段 IL 代码中,ldstr指令用于将字符串 “Hello World” 加载到堆栈上,call指令用于调用System.Console::WriteLine方法,将字符串输出到控制台,ret指令表示方法返回。

运行阶段

在运行阶段,公共语言运行时(CLR,Common Language Runtime)登场。CLR 是.NET 的核心组件,它为 C# 程序提供了一个运行时环境,负责管理程序的执行、内存分配、垃圾回收、类型安全检查等重要任务。

当我们运行 “Hello World” 程序时,操作系统首先会加载 CLR,然后 CLR 会加载我们的程序集,并对其中的 IL 代码进行即时编译(JIT,Just-In-Time Compilation) 。JIT 编译器会将 IL 代码转换为目标平台的机器码,这些机器码是针对当前运行的操作系统和硬件架构生成的,因此能够在目标平台上高效执行。

例如,如果程序在 Windows x64 平台上运行,JIT 编译器会将 IL 代码编译成适合 x64 架构的机器码。编译后的机器码会被缓存起来,当下次执行相同的代码时,就可以直接使用缓存的机器码,而不需要再次编译,从而提高了程序的执行效率。

在执行Console.WriteLine("Hello World")语句时,CLR 会找到System.Console类的WriteLine方法的实现,然后执行该方法。WriteLine方法会与操作系统的控制台进行交互,将 “Hello World” 字符串输出到控制台窗口中。

总的来说,C# 程序通过编译阶段将源代码转换为平台无关的 IL 代码,再通过运行阶段由 CLR 将 IL 代码编译成机器码并执行,这种机制使得 C# 程序能够实现跨平台运行,同时也保证了程序的安全性和高效性。

总结与展望

通过本次教程,我们成功地用 C# 实现了经典的 “Hello World” 程序,从搭建开发环境、创建项目,到编写代码、运行程序,每一步都为我们开启 C# 编程之旅奠定了基础。我们还深入剖析了程序背后的原理,了解了 C# 代码从编译到运行的整个过程。

这仅仅是一个开始,C# 还有许多强大的特性等待你去探索。接下来,你可以进一步学习 C# 的变量、数据类型、控制结构、函数、类和对象等知识,不断提升自己的编程能力。

比如,在学习变量和数据类型时,你会了解到如何根据不同的需求选择合适的数据类型,如整数类型(int、long 等)、浮点类型(float、double 等)、布尔类型(bool)以及字符串类型(string)等,还能掌握变量的声明和使用方法。

控制结构则包括条件语句(if - else、switch - case 等)和循环语句(for、while、do - while 等),它们能让你的程序根据不同的条件执行不同的逻辑,或者重复执行某些代码块,从而实现更复杂的功能。

来源:opendotnet

相关推荐