找回密码
 立即注册
首页 业界区 业界 一种更简单的方式运行 C# 代码,简化 C# 开发体验! ...

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

姚梨素 前天 06:27
前言

前段时间 .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。

  • https://dotnet.microsoft.com/zh-cn/download/dotnet/10.0
1.png

2.png

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

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

4.png

使用 #:package 引用 NuGet 包

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

  2. using Newtonsoft.Json;

  3. public class Product
  4. {
  5.     public string Name { get; set; }
  6.     public decimal Price { get; set; }
  7.     public DateTime ReleaseDate { get; set; }
  8. }

  9. class Program
  10. {
  11.     static void Main()
  12.     {
  13.         // 序列化示例
  14.         var product = new Product
  15.         {
  16.             Name = "笔记本",
  17.             Price = 9999.99m,
  18.             ReleaseDate = DateTime.Now
  19.         };

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

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

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

  30.         var newProduct = JsonConvert.DeserializeObject<Product>(jsonInput);
  31.         Console.WriteLine("反序列化结果:");
  32.         Console.WriteLine($"名称:{newProduct.Name}");
  33.         Console.WriteLine($"价格:{newProduct.Price:C}");
  34.         Console.WriteLine($"发布日期:{newProduct.ReleaseDate:yyyy-MM-dd}");
  35.     }
  36. }
复制代码
5.png

使用 #:sdk 指令指定 SDK

默认情况下,基于文件的程序使用 Microsoft.NET.Sdk SDK。如果您正在构建类似 Web API 的东西,可以使用 #:sdk 指令更改 SDK:
  1. #:sdk Microsoft.NET.Sdk.Web
复制代码
使用 #:property 设置 MSBuild 属性

可以使用 #:property 配置其他构建属性,例如:
  1. #:property LangVersion preview
复制代码
参考文章


  • https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-app
  • https://github.com/dotnet/sdk/blob/main/documentation/general/dotnet-run-file.md

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册