一种更简单的方式运行 C# 代码,简化 C# 开发体验!

前言

前段时间 .NET 10 Preview 4 推出了一种更简单的方式运行 C# 代码,即可以直接使用dotnet run file.cs 命令运行 C# 文件。这意味着我们不再需要创建项目文件或搭建整个应用程序框架,就能够快速运行脚本、测试代码片段或验证想法。

dotnet run file.cs的作用

dotnet run file.cs你可以直接运行一个独立的 C# file.cs 文件,就像使用 Python 或 JavaScript 等脚本语言一样。这一改进显著降低了尝试 C# 的门槛,使得 C# 语言在教学演示、快速原型开发或自动化脚本场景中都更具吸引力。

开发环境安装

目前该功能还处于预发布状态,使用之前需要先安装10.0.100-preview.4 SDK。

VS Code 中创建 C# 文件并直接运行

接下来我们直接在 VS Code 中创建一个独立的 helloWorld.cs 文件,然后直接在 cmd 命令行工具中使用 dotnet run 运行:

使用 #:package 引用 NuGet 包

我们可以直接在 helloWorld.cs 文件中使用 #:package 指令添加 NuGet 包引用,接下来我们来引用 Newtonsoft.Json 来进行对象的序列化和反序列:

复制代码
`#:package [email protected]`

using Newtonsoft.Json;

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public DateTime ReleaseDate { get; set; }
}

class Program
{
    static void Main()
    {
        // 序列化示例
        var product = new Product
        {
            Name = "笔记本",
            Price = 9999.99m,
            ReleaseDate = DateTime.Now
        };

        string json = JsonConvert.SerializeObject(product, Formatting.Indented);
        Console.WriteLine("序列化结果:");
        Console.WriteLine(json);

        // 反序列化示例
        string jsonInput = @"{
            ""Name"": ""华为手机"",
            ""Price"": 3899.00,
            ""ReleaseDate"": ""2025-06-04T00:00:00""
        }";

        Console.WriteLine("\n\r");

        var newProduct = JsonConvert.DeserializeObject<Product>(jsonInput);
        Console.WriteLine("反序列化结果:");
        Console.WriteLine($"名称:{newProduct.Name}");
        Console.WriteLine($"价格:{newProduct.Price:C}");
        Console.WriteLine($"发布日期:{newProduct.ReleaseDate:yyyy-MM-dd}");
    }
}

使用 #:sdk 指令指定 SDK

默认情况下,基于文件的程序使用 Microsoft.NET.Sdk SDK。如果您正在构建类似 Web API 的东西,可以使用 #:sdk 指令更改 SDK:

复制代码
`#:sdk Microsoft.NET.Sdk.Web`

使用 #:property 设置 MSBuild 属性

可以使用 #:property 配置其他构建属性,例如:

复制代码
`#:property LangVersion preview`

参考文章

相关推荐
追逐时光者11 天前
C#/.NET/.NET Core技术前沿周刊 | 第 39 期(2025年5.19-5.25)
【.net】·【c#】·【.net core】·【技术前沿周刊】
追逐时光者14 天前
一个使用 WPF 开发的 Diagram 画板工具(包含流程图FlowChart,思维导图MindEditor)
【.net】·【开源项目】·【实用工具】·【wpf】
追逐时光者15 天前
一个基于 C# 编写的事件驱动、具备专业水准的算法交易平台(量化交易引擎)
【.net】·【c#】·【开源项目】
追逐时光者17 天前
一个基于 ASP.NET Core 实现的领域驱动设计落地战术框架
【开源项目】·【.net core】·【ddd】
追逐时光者18 天前
C#/.NET/.NET Core技术前沿周刊 | 第 38 期(2025年5.12-5.18)
【.net】·【c#】·【开源项目】·【技术前沿周刊】
追逐时光者19 天前
一款基于 .NET 开源、可以拦截并修改 WinSock 封包的 Windows 软件
【.net】·【开源项目】·【实用工具】
追逐时光者21 天前
再也不用为找项目发愁了,C#/.NET/.NET Core优秀项目和框架精选值得你拥有!
【.net】·【开源项目】
追逐时光者23 天前
一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库
【.net】·【c#】·【开源项目】·【blazor】