跳至页脚内容
Iron Academy Logo
C#脚本和.NET CLI

C#脚本和文件执行在.NET 10中:Tim Corey的深度剖析

Tim Corey
14m 10s

C# 传统上是一种编译语言,需要项目、解决方案和 Visual Studio 设置才能执行甚至是最简单的程序。 然而,随着 .NET 10 的推出,情况发生了重大变化。 在他的C# 脚本和文件执行视频中,Tim Corey 演示了开发者现在如何将 C# 视为一种脚本语言,直接执行脚本文件,无需创建完整项目。 这种新能力允许程序员在一个 cs 文件中编写脚本代码,从命令提示符运行它,并快速实验新代码。

在本文中,我们将详细探索这些功能,跟随 Tim 的指导来理解工作流、命令行使用和基于文件的 C# 执行的高级功能。

Introduction to C# Scripting in .NET 10

Tim 在视频开头强调,.NET 10 中的 C# 脚本允许单个 cs 文件作为完整的应用程序。 与传统的 Visual Studio 项目不同,不需要公共类声明、Program.cs 或解决方案文件。您现在可以编写脚本,将其保存为 demo.cs,并立即执行。

这种方法类似于 Python 或 JavaScript 中的脚本编写,单个文件可以执行任务,而无需创建项目。 Tim 强调,这不仅仅是方便——它提供了运行任务、测试语句、快速实验对象或数据的能力。

创建您的第一个脚本文件

Tim 演示了在 Visual Studio Code 中创建一个名为 FileDemo.cs 的简单 cs 文件。 以下代码作为经典的 "hello world" 示例:

Console.WriteLine("Hello World");

运行文件就像打开命令提示符并执行:

dotnet run FileDemo.cs

输出立即显示 Hello World,表明即使单个文件的运行时执行也是完全支持的。 Tim 指出,这种方法非常适合新代码测试、小型脚本或不需要完整项目的情况。

处理命令行输入和参数

然后 Tim 演示了在脚本代码中接受命令行参数的能力。 通过修改 hello world 示例,您可以直接将值传递给脚本文件:

Console.WriteLine($"Hello {args[0]}");

当您运行 dotnet run demo.cs Tim 时,输出变为 Hello Tim。 Tim 指出,args 数组的工作方式与传统控制台应用程序中的完全相同,证明基于文件的脚本是完整的 C# 应用程序,具有所有语言功能。

简化语法和隐式导入

Tim 解释说,.NET 10 支持隐式导入指令,这意味着您可以访问 System 命名空间,而无需显式书写 using System;。 这减少了样板语法,并允许您的脚本中第一个对象或方法立即执行。

这种简化扩展到 csx 文件扩展名和 Visual Studio Code 中的交互式窗口工作流,开发者可以使用 REPL 窗口或交互式窗口逐行测试脚本代码,类似于 Python 脚本。

交互式用户输入

接着,Tim 展示了如何通过读取用户输入来使脚本具有交互性:

Console.Write("What is your name? ");
string name = Console.ReadLine();
Console.WriteLine($"Hello {name}");

在这里,交互的第一个对象是字符串 name,可以即时访问和显示。 Tim 指出可能出现的可空警告,但可以妥善处理。 这种读取输入和显示输出的能力使脚本文件对超出简单演示代码的任务而言多功能且实用。

在脚本中使用 NuGet 包

为了扩展脚本文件的运行时能力,Tim 介绍了 NuGet 包。 例如,使用 Spectre.Console,您可以用颜色格式化输出:

#r "nuget: Spectre.Console, 0.54.0"
using Spectre.Console;

AnsiConsole.MarkupLine("[red]Hello Tim[/]");

Tim 解释说,通过脚本代码中的 NuGet 包添加引用,允许开发者在没有完整项目的情况下利用外部程序集。 他演示了运行脚本并看到控制台显示用户的名字为红色,展示了基于文件的脚本可以与完整项目一样强大。

将脚本发布为可执行文件

Tim 还介绍了从 cs 文件创建可执行文件。 通过运行:

dotnet publish Filedemo.cs

您可以生成适用于 Windows、Linux 或 Mac 的 DLL 或 EXE,使脚本文件便携。 他强调,这些可执行文件是 Native AOT,提供最大化的运行时性能。 如果需要,可以在文件顶部使用属性指令关闭 AOT 属性。

这展示了 .NET 10 脚本在保持语法简单的同时生成生产就绪文件的能力。

将脚本转换为完整项目

对于需要多个类、方法或对象的更复杂应用程序,Tim展示了如何将脚本文件转换为完整项目:

dotnet project convert FileDemo.cs

此命令创建一个包含CS项目文件的新文件夹,保留NuGet包引用、可空设置和隐式usings。 原始脚本中的以下代码被保留,便于集成到Visual Studio解决方案或作为独立项目运行。

基于文件的脚本编写的关键优势

Tim强调了C#脚本编写和文件执行的几个优势:

  1. 速度——可以立即从脚本文件运行新代码。

  2. 移植性——将脚本发布为Windows、Linux或macOS可执行文件。

  3. 功能——脚本可以使用NuGet包、访问数据和处理用户输入。

  4. 灵活性——可以以最小的努力将cs文件提升为完整项目。

  5. 降低开销——简单任务无需解决方案、项目或类声明。

Tim指出,虽然基于文件的脚本不适用于所有场景,但它们非常适合于测试、演示和快速基于控制台的任务。

结论

Tim Corey的视频展示了在.NET 10中C#脚本编写是一种强大且灵活的开发者工具。 脚本文件允许立即执行新代码、处理用户输入、与对象交互以及使用NuGet包。 脚本可以从命令提示符运行,在Visual Studio Code中执行,或发布为DLL或EXE用于跨平台使用。

将脚本代码转换为完整项目的能力结合了脚本文件的简单性和传统Visual Studio项目的可扩展性。 Tim鼓励开发者自由地编写、测试和修改脚本代码,使C#脚本成为快速开发和试验的宝贵工具。

正如Tim总结的那样,这种方法对于小型项目、控制台应用程序和数据处理任务非常理想,提供了与传统C#发展互补的现代高效工作流程。

Hero Worlddot related to C#脚本和文件执行在.NET 10中:Tim Corey的深度剖析
Hero Affiliate related to C#脚本和文件执行在.NET 10中:Tim Corey的深度剖析

分享您的所爱,赚取更多收入

您为使用 .NET、C#、Java、Python 或 Node.js 的开发人员创建内容吗?将您的专业知识转化为额外收入!

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我