C# 腳本和文件執行在 .NET 10 中:與 Tim Corey 深入討論
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]}");當您運行.NET run demo.cs Tim時,輸出變成Hello Tim。 Tim指出,args陣列的工作方式與傳統控制台應用程式中的完全一樣,顯示出基於文件的腳本是完整的C#應用程式,並具有語言的所有功能。
簡化語法和隱式使用
Tim解釋說,.NET 10支持隱式使用指令,這意味著您可以在不顯式編寫using System;的情況下存取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,從而使脚本文件變得可移植。 他強調,這些可執行文件是本地AOT,提供最大運行時性能。 如有需要,可以在文件頂部使用屬性指令關閉AOT屬性。
這展示了.NET 10腳本的能力,可以生成做到生產準備的文件,同時保持語法簡捷。
將腳本轉換為完整项目
對於需要多個類別、方法或物件的更复杂應用,Tim展示了如何將腳本文件轉換為完整項目:
dotnet project convert FileDemo.cs這個命令建立一個包含CS專案文件的新文件夾,保留了NuGet包引用、可空性設置和隱式使用。 保留了原始腳本中的以下程式碼,使其更易於整合到Visual Studio解決方案中或作為獨立專案運行。
基於文件腳本的主要優勢
Tim突出了C#腳本和文件執行的幾個優勢:
速度——可以立即從腳本文件運行新程式碼。
移植性——將腳本發佈為适用於Windows、Linux或macOS的可執行文件。
強大——腳本可以使用NuGet包,存取資料以及處理使用者輸入。
靈活性——可以輕鬆地將cs文件提升爲完整項目。
- 減少開銷——簡單任務無需解決方案、項目或類聲明。
Tim指出,雖然基於文件的腳本並不適合所有場景,但它們非常適合測試、演示和快速控制台任務。
結論
Tim Corey的影片展示了.NET 10中的C#腳本對於開發人員來說是一種强大而灵活的工具。 腳本文件允許立即執行新程式碼,處理使用者輸入,與物件交互,並使用NuGet包。 可以從命令提示符運行腳本,也可以在Visual Studio Code中執行,或者將其發佈為適用於跨平台使用的DLL或EXE。
將腳本程式碼轉換為完整項目的能力提供了兩者的最佳組合:腳本文件的簡單性和傳統Visual Studio專案的擴展性。 Tim鼓勵開發者自由編寫、測試和修改腳本程式碼,使C#腳本變成快速開發和實驗的寶貴工具。
正如Tim總結的那樣,這種方法非常適合小型項目、控制檯應用程式和資料處理任務,提供了一種現代、高效的工作流程,補充了傳統的C#開發。

