C#腳本和.NET 10中的文件執行:與Tim Corey的深入探討
C# 傳統上是一種編譯語言,執行即使是最簡單的程式也需要專案、解決方案和 Visual Studio 設定。 然而,在 .NET 10 中,情況已經發生了巨大的變化。 Tim Corey 在他的 C# 腳本和文件執行 視頻中展示了開發人員如何現在可以將 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 支持隱式 using 指令,這意味著您可以在不明確撰寫 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 套件引用、空性設置和隱式 using。 從原始腳本中保留的代碼,使其易於集成到 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# 開發。
