之前写C#一直用的是Visual Studio 和 Rider 但是随着我的破电脑越来越卡也快带不动这两个一启动就吃满电脑内存的公子哥了,所以还是用我们的VScode娘吧 @_@

首先去官网下载 dotnet SDK 10

点击此处前往官网下载

​ image-20251225221844942

选择你电脑的操作系统对应的版本下载即可

完成后就可以 键盘输入 win + R 进入 cmd 窗口

​ image-20251225222110903

在控制台输入

已复制
dotnet --info

​ image-20251225222233255

可以看到我电脑上有好多版本,包括最新的 dotnet 10

然后回到VScode

给VScode安装插件

这里我就不一一介绍了,全都下载下来就对了(某些插件可能已经过期下架了,但一般这些比较火的不会只要有人维护)

插件名: .NET Install Tool

​ image-20251225222548271

插件名: C#

​ image-20251225222702273

插件名: C# Dev Kit

​ image-20251225222744158

插件名: C# Extensions

​ image-20251225222832804

插件名: C# Snippets

​ image-20251225222922227

插件名: C# XML Documentation Comments

​ image-20251225223047351

插件名: GitHub Copilot Chat

​ image-20251225223236076

插件名: Code Runner

​ image-20251227161831377

配置C#环境

首先新建一个空文件夹并拖进VScode(你不会这个都不会吧???)

然后按照如图所示找到这个 “新建终端”

​ image-20251225223614589

然后在控制台输入如下语句

已复制
dotnet new console -n HelloWorld

​ image-20251225223940739

但是如果你看过别的教程里的 就会知道 需要有 bin文件夹才行

所以我们再次进入刚才的新创建的文件夹的路径

已复制
cd HelloWorld

​ image-20251225224211649

如图所示,我们已经进入这个文件夹

输入如下代码

已复制
dotnet run

​ image-20251225224318898

可以看到左上角出现了bin文件夹 控制台也输出了 默认的语句 “ Hello, World! ”

有些小伙伴可能听说了其他人的旧版本的代码运行方式,我确实也亲手试了一遍

老版本是首先在VScode里输入 ctrl +shift +p 后

在输入栏里再输入

已复制
.NET: Generate Assets for Build and Debug

​ image-20251225224946185

可以看到

​ image-20251225225212934

我们因为是新版本,所以选择“ 是 ”

然后怎么用咧?

首先我们进入默认的 Program.cs 文件

假如我们直接点击右上角的小箭头(Run code,即运行代码)就会报错

​ image-20251225225745394

需要点击这个(run project associated with this file ,即运行所有与这个cs文件相关联的文件)

​ image-20251225225905472

然后出现这个

​ image-20251225230122246

最后就是结果

​ image-20251225230150634

这里看你的需求

选择直接运行还是调试后运行

第一种: 直接输入 F5 键 运行并调试 或者选择刚才的 Debug project associated with this file (与此文件关联的调试项目)

image-20251225230258055

​

第二种:直接输入 Ctrl + F5 直接运行 或者 选择刚才的 Run project associated with this file (运行与此文件关联的项目)

和刚才一样

​ image-20251225230600684

终端中文乱码问题解决方案

对于那些输出窗口有中文乱码的可以看看我的另一篇Blog,可以同时解决VScode Trae Cursor这三个的问题(因为后两个跟VScode没区别,连设置文件settings.json都一模一样)

点击查看我的另一篇文章“ love2d学习第一天–配置love2d环境和lua的环境 ”

对了,还有一件事,大家可能发现按照咱们刚才的步骤在VScode里的C#控制台输出的中文是正常的,但是一到Trae和Cursor里就时乱码

这个是因为三者在某些方面不太一样

​ image-20260204234239623

​ image-20260204234306386

​ image-20260204234333464

这里也是C#的特别之处

​ image-20260204234617190

​ image-20260204234633901

所以我们有两种方案可以解决,看大家的喜好哦

方案一:废除调试F5功能,直接输出结果

这个是coderunner的功能,我们可以改一下

​ image-20260205002434937

找到settings.json文件里的这一句,将其替换为下面这句

​ image-20260205000029980

已复制
"csharp": "powershell -NoProfile -Command \"[Console]::OutputEncoding=[Text.Encoding]::UTF8; dotnet run\"",

​

什么,你不知道settings.json文件在哪?这里我三个都讲一遍吧

但是我说实话,只用改VScode的就行,然后让其他两个同步VScode的设置就行了

对于VScode

文件->首选项->设置

image-20260205001035859

点开这个像书页一样的UI图标

image-20260205001155495

对于Cursor

文件->首选项->设置

image-20260205000337468

点击“…”号选择打开设置(json)

image-20260205000844013

对于Trae

文件->首选项->设置

​ image-20260205001411839

点击 Editor设置 的 去设置

​ image-20260205001526644

和VScode一样的小书页

​ image-20260205001558592

然后做完这一切后我们只需要点击这个符号就可以了(之前直接点击会报错,现在可以了,点击会直接出结果并且不调试了)

​ image-20260205002313450

方案二:保留调试F5功能,不修改原本的json设置文件

这个方案也是比较通用的,保持刚才文件里的”csharp”: “scriptcs”不变

​ image-20260205002409585

C#已复制
using System.Text;
Console.OutputEncoding = Encoding.UTF8;                      					
Console.InputEncoding = Encoding.UTF8;

这里我用一个C#程序示范一下,按Ctrl+F5执行代码

C#已复制
// 定义 ElemType 为 int 类型
using ElemType = System.Int32;
using System.Text;

//定义顺序表类
public class SeqList
{
    public List<ElemType> data = new List<ElemType>();
    public int length// 顺序表当前长度
    {
        get { return data.Count; }
    }

    //之所以构造函数,是因为实例化时会自动调用构造函数
    public SeqList()
    {
        initList();
    }

    //初始化函数
    public void initList()
    {
        data = new List<ElemType>();
    }

    //尾插法
    public int appendElem(int e)
    {
        data.Add(e);
        return 1;
    }

    //遍历
    public void listElem()
    {
        // foreach (var item in data)
        // {
        //     Console.WriteLine(item);
        // }
        Console.WriteLine(string.Join("\n", data));
    }
    //删除
    public int deleteElem(int pos, out ElemType e)
    {
        e = 0; // out 参数必须赋值

        if (length == 0)
        {
            Console.WriteLine("空表");
            return 0;
        }
        if (pos < 1 || pos > length)
        {
            Console.WriteLine("删除数据位置有误");
            return 0;
        }

        // 取出要删除的元素
        e = data[pos - 1];

        //直接调用 List.RemoveAt,底层自动处理移位
        data.RemoveAt(pos - 1);

        return 1;
    }
}

class Program
{
    static void Main(string[] args)
    {
        //---------------------------------------------------------------------------
        //在main函数里加上这两句
        Console.OutputEncoding = Encoding.UTF8;                      					
        Console.InputEncoding = Encoding.UTF8;
        //----------------------------------------------------------------------------
        SeqList list = new SeqList();// 创建顺序表实例

        list.appendElem(23);
        list.appendElem(45);
        list.appendElem(88);
        Console.WriteLine("顺序表的元素有:");
        list.listElem();// 遍历顺序表

        ElemType deletedElem;
        list.deleteElem(2, out deletedElem);
        list.listElem();// 遍历顺序表
        Console.WriteLine("被删除的元素是:" + deletedElem);
    }
}

​ image-20260205003100841

以后我再补充一下怎么在Unity ,Godot 里用VScode里写脚本吧(unity和godot用VScode是真的快啊,以前光打开游戏项目脚本都得三分钟,我的破电脑也是无敌了,要是有游戏本就好了)