快速开始:用 VSCode 编写你的第一个 C# 程序 – wiki基地


快速开始:用 VSCode 编写你的第一个 C# 程序

欢迎来到 C# 的世界!C# 是一种强大、多用途的编程语言,由微软开发,广泛应用于构建各种类型的应用程序,包括 Windows 桌面应用、Web 应用(使用 ASP.NET Core)、移动应用(使用 Xamarin/MAUI)、游戏开发(使用 Unity)以及云服务(使用 Azure)等。

对于初学者来说,选择一个合适的开发环境至关重要。Visual Studio Code(简称 VS Code)是一个免费、轻量级但功能强大的源代码编辑器,支持多种编程语言,并通过丰富的扩展生态系统提供强大的功能,包括 C# 开发。它跨平台运行,支持 Windows、macOS 和 Linux,使其成为 C# 开发的绝佳选择,尤其适合那些不想安装完整的、功能全面的 Visual Studio IDE 的用户。

本文将手把手地指导你完成在 VS Code 中编写、构建和运行你的第一个 C# “Hello, World!” 程序的整个过程。即使你没有任何 C# 或编程经验,也能跟着步骤顺利完成。

我们将涵盖以下内容:

  1. 准备工作: 安装 VS Code 和 .NET SDK。
  2. 安装 C# 扩展: 为 VS Code 添加 C# 开发能力。
  3. 创建新项目: 使用 .NET CLI 创建一个控制台应用程序项目。
  4. 理解项目结构: 了解新创建项目中的文件和文件夹。
  5. 编写和理解代码: 学习 “Hello, World!” 程序的每一行代码。
  6. 运行程序: 通过终端和 VS Code 的调试器运行你的程序。
  7. 调试程序: 学习如何在 VS Code 中设置断点并逐步执行代码。
  8. 核心概念简介: 简单介绍 .NET、C#、SDK、Runtime 和 VS Code 的关系。
  9. 常见问题与故障排除。
  10. 下一步学习方向。

准备好了吗?让我们开始编程之旅吧!

第一步:准备工作 – 安装 VS Code 和 .NET SDK

在开始编写 C# 代码之前,你需要安装两个核心组件:

  1. Visual Studio Code (VS Code): 你的代码编辑器。
  2. .NET SDK: 包含编译、运行和发布 .NET 应用程序所需的所有工具和库。

1.1 安装 Visual Studio Code

VS Code 是免费的,并且支持跨平台。

  • 下载 VS Code: 访问 VS Code 官方网站:https://code.visualstudio.com/
  • 选择你的操作系统: 根据你的操作系统(Windows、macOS 或 Linux)下载对应的安装包。
  • 安装过程:
    • Windows: 双击下载的 .exe 文件。按照安装向导的提示进行。在安装过程中,建议勾选 “Add ‘Open with Code’ action to Windows Explorer context menu” 和 “Add ‘Open with Code’ action to directory context menu” 选项,这样你可以方便地在文件夹上右键选择 “Open with Code” 来打开它。其他选项通常保持默认即可。
    • macOS: 下载 .zip 文件,解压后将 “Visual Studio Code.app” 拖拽到 “Applications” 文件夹。
    • Linux: 提供 .deb.rpm 包,或者通过包管理器安装。具体步骤可以参考 VS Code 官网的 Linux 安装说明。

安装完成后,启动 VS Code。你会看到一个欢迎界面。

1.2 安装 .NET SDK

.NET SDK 是 C# 开发的核心,它包含了 .NET 命令行接口 (CLI)、编译器、运行时库等。

  • 下载 .NET SDK: 访问 .NET 官方下载页面:https://dotnet.microsoft.com/download
  • 选择 .NET 版本: 建议下载最新的 推荐版本(通常是 LTS – Long Term Support 或 Current 版本)。查找适用于你的操作系统的 .NET SDK 版本。
  • 安装过程:

    • Windows: 双击下载的安装包 (.exe.msi)。按照安装向导的提示进行。安装过程通常比较简单,接受许可条款,然后点击安装即可。
    • macOS: 双击下载的 .pkg 文件。按照安装向导的提示进行。
    • Linux: 不同的发行版有不同的安装方式,推荐使用包管理器安装。具体步骤可以参考 .NET 官方文档:https://learn.microsoft.com/zh-cn/dotnet/core/install/
  • 验证安装: 安装完成后,打开你的终端或命令提示符(在 Windows 上可以搜索 “cmd” 或 “PowerShell”,在 macOS/Linux 上打开 Terminal 应用)。输入以下命令并按回车:

    bash
    dotnet --version

    如果安装成功,你会看到已安装的 .NET SDK 版本号(例如 8.0.100)。如果命令未找到,可能需要检查环境变量配置,或者重新启动终端。

至此,你已经完成了必要的环境准备。

第二步:安装 C# 扩展

VS Code 本身只是一个通用的代码编辑器。要获得强大的 C# 开发支持(如语法高亮、智能代码补全、调试等),你需要安装微软官方提供的 C# 扩展。

  1. 打开 VS Code。
  2. 打开扩展视图: 点击左侧边栏的方块图标(Extensions),或者按下 Ctrl+Shift+X (Windows/Linux) 或 Cmd+Shift+X (macOS)。
  3. 搜索 C# 扩展: 在搜索框中输入 “C#”。
  4. 找到并安装: 找到由 Microsoft 发布的名为 “C#” 的扩展。点击 Install 按钮。

安装完成后,可能需要重新加载 VS Code(通常会有提示按钮,或者你可以手动关闭并重新打开 VS Code)以激活扩展。

现在,VS Code 已经具备了强大的 C# 代码编辑和调试能力。

第三步:创建新项目

我们将创建一个简单的 .NET 控制台应用程序项目。使用 .NET CLI (Command-Line Interface) 是创建项目的标准方式,并且在 VS Code 的集成终端中操作非常方便。

  1. 打开 VS Code。
  2. 打开集成终端: 在 VS Code 中,选择菜单栏的 Terminal -> New Terminal,或者按下快捷键 Ctrl+ (Windows/Linux) 或 ``Cmd+ “ (macOS)。这会在 VS Code 底部打开一个终端面板。
  3. 创建一个新的文件夹: 在终端中,导航到你想要存放项目的目录。你可以使用 cd 命令切换目录(例如 cd Documents/Projects)。然后创建一个新的文件夹来存放你的第一个 C# 项目。例如:

    bash
    mkdir MyFirstCSharpApp

    这会在当前目录下创建一个名为 MyFirstCSharpApp 的文件夹。
    4. 进入项目文件夹:

    bash
    cd MyFirstCSharpApp

    5. 使用 .NET CLI 创建控制台项目: 在终端中输入以下命令:

    bash
    dotnet new console

    这个命令的作用是:
    * dotnet: 调用 .NET CLI 工具。
    * new: 创建一个新的项目或文件。
    * console: 指定创建的项目模板为控制台应用程序。

    执行命令后,.NET CLI 会在你当前所在的 MyFirstCSharpApp 文件夹中创建一个基本的控制台应用程序结构。你会看到类似以下的输出:

    “`
    The template “Console App” was created successfully.

    Processing post-creation actions…
    Running ‘dotnet restore’ on MyFirstCSharpApp.csproj…
    正在确定要还原的项目…
    已还原 /path/to/your/folder/MyFirstCSharpApp/MyFirstCSharpApp.csproj。

    Restore succeeded.
    ``dotnet restore` 命令会自动获取项目所需的依赖项。

  4. 在 VS Code 中打开项目文件夹:

    • 选择菜单栏的 File -> Open Folder...
    • 导航到你刚刚创建的 MyFirstCSharpApp 文件夹,然后点击 “Select Folder” (Windows) 或 “Open” (macOS/Linux)。

    现在,VS Code 的侧边栏(Explorer)会显示 MyFirstCSharpApp 文件夹的内容。

第四步:理解项目结构

打开项目文件夹后,你会看到 MyFirstCSharpApp 文件夹包含几个文件和子文件夹:

  • MyFirstCSharpApp.csproj: 这是项目的配置文件(Project File)。它是一个 XML 文件,告诉 .NET SDK 如何构建项目,包括项目类型、目标框架、依赖项等信息。对于初学者来说,通常不需要手动编辑这个文件,但了解它的存在很重要。
  • Program.cs: 这是你的主要源代码文件。我们的大部分代码将在这里编写。
  • obj 文件夹:这个文件夹包含了构建过程中生成的临时文件。
  • bin 文件夹:这个文件夹包含了构建输出,即可执行文件或库文件。

当你打开项目文件夹后,VS Code 可能会在右下角弹出一个提示:”Required assets to build and debug are missing from ‘MyFirstCSharpApp’. Add them?” (构建和调试所需的资产在 ‘MyFirstCSharpApp’ 中缺失。是否添加它们?)。强烈建议点击 “Yes”。这将让 VS Code 为你的项目生成必要的 .vscode 文件夹和其中的配置文件(launch.jsontasks.json),这些文件对于在 VS Code 中进行构建和调试非常重要。

第五步:编写和理解代码

打开 Program.cs 文件。你可能会看到类似以下的代码(具体的代码可能因 .NET 版本而略有不同,但核心思想是一样的):

csharp
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

在较新的 .NET 版本中(如 .NET 6 及以上),微软引入了 “顶级语句”(Top-level statements)特性,使得简单的控制台程序可以省去传统的 namespace, class, 和 Main 方法的定义,直接编写执行代码。上面的代码就是使用了顶级语句的例子。

虽然顶级语句简化了代码,但为了更好地理解 C# 的基本结构,我们来看一下传统的写法,它更清晰地展示了程序的入口点:

“`csharp
using System; // 1

namespace MyFirstCSharpApp // 2
{
internal class Program // 3
{
static void Main(string[] args) // 4
{
Console.WriteLine(“Hello, World!”); // 5
}
}
}
“`

让我们逐行解释这段传统代码(即使你使用的是顶级语句,理解这些概念也很有帮助):

  1. using System;: 这行代码导入了 System 命名空间。命名空间(Namespace)是一种组织代码的方式,类似于文件夹组织文件。System 命名空间包含了许多基础类,比如用于控制台输入输出的 Console 类。using 关键字使得你可以直接使用 System 命名空间中的类型,而无需写完整的名称(例如 System.Console.WriteLine)。
  2. namespace MyFirstCSharpApp: 这定义了一个名为 MyFirstCSharpApp 的命名空间。它通常与你的项目名称相同,用于包含你项目中的代码,避免与其他代码库中的同名类发生冲突。
  3. internal class Program: 这定义了一个名为 Program 的类(Class)。在面向对象编程中,类是对象的蓝图。internal 访问修饰符表示这个类只能在当前项目中访问。
  4. static void Main(string[] args): 这是 C# 控制台应用程序的 入口点 方法。当程序启动时,第一段执行的代码就从这里开始。
    • static: 表示这个方法属于 Program 类本身,而不是类的某个特定实例(对象)。程序的入口点必须是静态的。
    • void: 表示这个方法不返回任何值。
    • Main: 这是方法名,C# 程序会查找一个名为 Main 的方法作为程序的起点(不区分大小写,但通常写作 Main)。
    • (string[] args): 这是方法的参数列表。string[] args 表示 Main 方法可以接受一个字符串数组作为参数,这些参数通常来自命令行。对于简单的程序,即使不使用这些参数,参数列表也需要存在(或者使用 static void Main())。
  5. Console.WriteLine("Hello, World!");: 这是实际执行输出的代码。
    • Console: 是 System 命名空间中的一个静态类,提供了控制台输入输出的功能。
    • WriteLine: 是 Console 类的一个静态方法,用于向控制台输出一行文本。括号内的 "Hello, World!" 是一个字符串字面量,是要输出的内容。
    • ;: 分号表示语句的结束。

如果你使用了顶级语句模板,你看到的只有 Console.WriteLine("Hello, World!"); 这一行代码。这是因为编译器在幕后为你生成了 Program 类和 Main 方法,并将你的顶级语句放在其中。这对于简单程序非常方便,但理解传统的结构对于学习 C# 的面向对象特性是必要的。

你可以尝试修改 Console.WriteLine() 中的文本,例如改成 Console.WriteLine("你好,C#!");

第六步:运行程序

有两种主要方式可以在 VS Code 中运行你的 C# 程序:使用集成终端或使用 VS Code 的调试功能。

6.1 使用集成终端运行

这是最简单直接的方式。

  1. 打开集成终端: 如果终端没有打开,按下 Ctrl+ Cmd+`` 打开。确保终端的当前目录是你项目的根目录 (MyFirstCSharpApp`)。
  2. 运行命令: 在终端中输入以下命令并按回车:

    bash
    dotnet run

    这个命令的作用是:
    * 首先,它会检查你的项目是否有改动。如果有,它会自动构建(编译)你的项目。构建成功后,会在 bin/Debug/<目标框架> 目录下生成可执行文件。
    * 然后,它会执行构建好的可执行文件。

    你应该会在终端中看到程序的输出:

    Hello, World!

    恭喜!你已经成功编写并运行了你的第一个 C# 程序。

6.2 使用 VS Code 调试器运行

VS Code 的调试功能非常强大,不仅可以运行程序,还可以在程序执行过程中暂停、检查变量的值,帮助你找到错误(Bug)。

  1. 打开运行和调试视图: 点击左侧边栏的“虫子”图标(Run and Debug),或者按下 Ctrl+Shift+D (Windows/Linux) 或 Cmd+Shift+D (macOS)。
  2. 开始调试: 在 Run and Debug 视图的顶部,你应该会看到一个绿色的播放按钮,旁边显示着当前的启动配置(通常默认是 “.NET Core Launch (console)” 或类似名称)。点击这个绿色的播放按钮。

    VS Code 会自动构建你的项目,然后在调试模式下运行它。程序的输出会显示在底部面板的“调试控制台”(Debug Console) 标签页中。

    Hello, World!

    如果这是你第一次在 VS Code 中调试 C# 项目,并且之前没有点击“Add assets”提示的“Yes”,那么点击播放按钮时可能会提示你创建 launch.json 文件。按照提示选择 .NET Core 环境即可。

运行成功后,调试过程会自动结束。

第七步:调试程序

调试是编程过程中不可或缺的一部分,可以帮助你理解代码的执行流程和查找问题。VS Code 提供了强大的调试工具。

  1. 设置断点 (Breakpoint): 断点是你希望程序在执行到某一行时暂停的位置。在 Program.cs 文件中,找到包含 Console.WriteLine("Hello, World!"); 的那一行。点击行号左侧的空白区域。一个红色的小圆点会出现,表示你在这里设置了一个断点。

  2. 启动调试: 再次点击 Run and Debug 视图中的绿色播放按钮来启动调试。

  3. 程序暂停: 程序会运行到你设置的断点处暂停。VS Code 的界面会发生变化,当前执行行会高亮显示,左侧会出现变量信息,顶部会出现调试控制栏。

  4. 调试控制栏: 顶部的调试控制栏包含以下常用按钮(从左到右):

    • Continue (F5): 继续执行程序直到下一个断点或程序结束。
    • Step Over (F10): 执行当前行代码,如果当前行是一个方法调用,则不再进入该方法内部,而是直接执行完该方法并停在下一行。
    • Step Into (F11): 执行当前行代码,如果当前行是一个方法调用,则进入该方法内部的第一行代码。
    • Step Out (Shift+F11): 从当前方法中跳出,返回到调用该方法的位置。
    • Restart (Ctrl+Shift+F5): 重新启动调试。
    • Stop (Shift+F5): 停止调试。
  5. 检查变量: 在左侧的“Variables”面板中,你可以看到当前作用域内的所有变量及其值。对于这个简单的程序,可能没有太多有用的变量,但当你编写更复杂的程序时,这里会显示局部变量、方法的参数等。

  6. 使用调试控制台: 底部的“Debug Console”标签页不仅显示程序的输出,你还可以在这里输入 C# 表达式来实时评估它们的值。例如,在程序暂停时,你可以在调试控制台输入 "Hello, World!".Length 然后按回车,它会输出字符串的长度 13

  7. 继续或停止: 点击 Continue 按钮 (F5) 让程序执行完剩余部分,或者点击 Stop 按钮 (Shift+F5) 结束调试。

通过设置断点和单步调试,你可以清晰地看到程序的执行流程,理解每一行代码的作用,这对于学习和排除错误非常有帮助。

第八步:核心概念简介

为了让你对 C# 和 .NET 生态系统有一个更清晰的认识,这里简单介绍几个核心概念:

  • .NET: .NET 是一个免费、开源的开发平台,用于构建各种应用程序。它不仅仅是一种语言,而是一个包含运行时环境、库、工具的生态系统。C# 是用于在 .NET 平台上进行开发的主要语言。早期的 .NET Framework 主要用于 Windows,而现在的 .NET (Core) 是跨平台的。
  • .NET SDK (Software Development Kit): 软件开发工具包。包含了开发者构建、运行和发布 .NET 应用所需的一切工具,包括 .NET CLI、编译器(Roslyn)、运行时、库等。我们安装的就是这个。
  • .NET Runtime: 运行时环境。这是执行 .NET 应用程序所需的环境。它包含实时 (JIT) 编译器和垃圾回收器等组件。最终用户只需要安装 Runtime 就可以运行 .NET 应用,而开发者需要安装 SDK。
  • C#: 一种现代、面向对象、类型安全的编程语言。它是 .NET 平台的首选语言之一。它的语法受到了 C++ 和 Java 的影响,但增加了很多现代特性。
  • VS Code: 一个轻量级的源代码编辑器。它提供代码编辑、语法高亮、智能补全、版本控制集成等基本功能。通过安装扩展,可以支持多种语言和框架的开发。
  • C# Extension for VS Code: 微软为 VS Code 提供的官方 C# 扩展。它利用了 .NET SDK 的能力,为 VS Code 带来了强大的 C# 开发体验,如智能感知(IntelliSense)、代码导航、重构、集成调试等。

简单来说,你可以把它们的关系理解为:
* .NET Runtime 是程序运行的环境。
* .NET SDK 包含了创建和构建程序的工具,并且包含了 Runtime。
* C# 是你用来编写代码的语言。
* VS Code 是你编写和管理代码的地方(你的工作台)。
* C# Extension 让 VS Code 这个工作台能够理解和很好地处理 C# 语言和 .NET 项目。

你用 C# 语言编写源代码,通过 .NET SDK 中的工具(如 dotnet build)将其编译成可以在 .NET Runtime 上运行的代码,然后在 VS Code 这个编辑器中完成整个过程,并借助 C# 扩展获得便利。

第九步:常见问题与故障排除

在初次设置和运行环境时,可能会遇到一些问题。以下是一些常见问题及其解决方法:

  • dotnet 命令未找到:
    • 原因: .NET SDK 未正确安装,或者安装目录未添加到系统的环境变量 PATH 中。
    • 解决方法: 确保你已经成功安装了 .NET SDK。安装完成后,关闭并重新打开终端或命令提示符,有时需要重启电脑。再次尝试输入 dotnet --version 验证。
  • VS Code 无法识别 C# 语法或提供智能提示:
    • 原因: C# 扩展未安装或未启用。
    • 解决方法: 检查 VS Code 的扩展视图,确保 Microsoft 发布的 C# 扩展已经安装并启用。有时需要重新加载或重启 VS Code。
  • 打开项目文件夹后,VS Code 提示“Required assets for build and debug are missing”:
    • 原因: 项目目录下缺少 .vscode 文件夹和必要的 launch.json, tasks.json 配置文件,这些文件是 VS Code 调试器所需的。
    • 解决方法: 当提示出现时,点击 “Yes” 让 VS Code 自动生成。如果错过了提示,可以尝试在 Run and Debug 视图中,点击顶部齿轮图标旁的下拉菜单,选择 “.NET Core” 来手动创建配置文件。
  • 运行 dotnet run 或调试时出现构建错误 (Build failed):
    • 原因: 你的代码中存在语法错误或其他编译错误。
    • 解决方法: 查看终端或 VS Code 的 “Problems” (Ctrl+Shift+M) 面板中的错误信息。错误信息通常会指出错误的文件名、行号以及错误的描述。根据错误提示修改代码。
  • 程序运行后立刻退出,看不到输出:
    • 原因: 控制台程序执行完毕后会自动关闭。如果你的程序只是简单输出一行文本,可能因为终端或窗口立即关闭而看不到输出。
    • 解决方法:
      • Console.WriteLine() 后添加一行 Console.ReadKey();Console.ReadLine();。这会让程序等待用户按下任意键或输入一行文本后才结束,从而暂停窗口。
      • 在 VS Code 的调试控制台中运行,输出会保留。
      • 在命令提示符或终端中运行 dotnet run,输出也会保留在终端窗口中。
  • 调试器无法启动:
    • 原因: 可能有多种,如项目构建失败、launch.json 配置错误、或者前一个调试进程没有完全终止。
    • 解决方法: 先尝试在终端使用 dotnet run 确保项目可以正常运行。检查 VS Code 的 “Problems” 面板是否有构建错误。尝试停止所有正在运行的调试进程。检查 launch.json 配置是否正确(通常自动生成的配置是正确的)。

耐心是学习编程的关键。遇到问题时,仔细阅读错误信息,它们通常提供了重要的线索。搜索错误信息也是解决问题的常用方法。

第十步:下一步学习方向

恭喜你!你已经成功迈出了 C# 编程的第一步,学会了如何在 VS Code 中创建、编写和运行一个简单的控制台应用程序。这只是一个开始,C# 的世界还有很多精彩等你探索。

接下来,你可以学习以下内容来继续你的 C# 学习之旅:

  1. C# 语言基础: 深入学习 C# 的基本语法,包括:
    • 数据类型(整型、浮点型、布尔型、字符串等)
    • 变量和常量
    • 运算符
    • 控制流语句(if/else, switch, for, while, foreach)
    • 数组和集合(List, Dictionary 等)
    • 方法(函数)
    • 类和对象(面向对象编程的基础)
    • 属性、字段
    • 继承、多态、封装
    • 接口、抽象类
    • 异常处理(try-catch)
  2. .NET 基础类库 (BCL): 学习如何使用 .NET 提供的丰富类库来完成各种任务,例如文件操作、网络通信、数据结构等。
  3. VS Code 更多功能: 学习如何更高效地使用 VS Code 进行开发,例如:
    • 代码片段 (Snippets)
    • 代码格式化
    • Git 版本控制集成
    • 其他有用的扩展
  4. 不同类型的 .NET 应用程序: 尝试创建其他类型的项目:
    • ASP.NET Core Web 应用: 构建网站和 Web API。
    • WPF 或 WinForms 应用: 构建 Windows 桌面应用程序。
    • MAUI (.NET Multi-platform App UI): 构建跨平台桌面和移动应用。
    • Unity: 如果你对游戏开发感兴趣,C# 是 Unity 引擎的主要脚本语言。
  5. 学习资源:
    • Microsoft Learn (docs.microsoft.com): 微软官方的学习平台,提供了大量高质量的 C# 和 .NET 文档、教程和在线课程。这是最权威的学习资源。
    • 书籍: 许多经典的 C# 入门书籍可以帮助你系统地学习。
    • 在线课程平台: Coursera, Udemy, Codecademy 等平台提供 C# 相关课程。
    • 社区: 加入 C# 开发者社区、论坛(如 Stack Overflow)来提问和交流。

最重要的是,持续实践。编写代码是学习编程最好的方式。尝试修改你当前的程序,实现一些小功能,或者开始一些简单的练习项目。

总结

在本文中,我们详细介绍了如何在 Visual Studio Code 环境下搭建 C# 开发环境,并从零开始创建、编写、运行和调试了第一个 “Hello, World!” 控制台应用程序。我们了解了 VS Code、.NET SDK、C# 语言之间的关系,并初步认识了项目结构和代码的基本组成部分。

通过完成这些步骤,你已经掌握了使用 VS Code 进行 C# 开发的基本流程。这是一个坚实的基础,为你将来探索 C# 和 .NET 的更广阔世界铺平了道路。

记住,编程是一项需要不断学习和实践的技能。保持好奇心,勇于尝试,你将在编程的世界中走得更远!

祝你编程愉快!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部