.NET幫助 Nswag C#(對於開發者的運行原理) Curtis Chau 更新日期:6月 22, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article API 在當今的軟體開發環境中是必不可少的,因為它們促進了各種軟體系統和元件之間的通信。 為了讓開發人員高效地使用 API,必須提供徹底且易於理解的文件。 兩個可以幫助 C# API 文件工作流程的有效工具是 NSwag C# 和 IronPDF。 這篇文章將討論如何使用 NSwag 與 .NET Core 生成API 規範,並使用 IronPDF 從這些規範生成高品質的 PDF 文件。 如何在 C# 中使用 NSwag 使用 Swagger UI 創建 RESTful 網頁 API。 創建 C# 控制台應用程式。 安裝 NSwag 程式庫。 匯入命名空間並創建物件。 將 Swagger JSON 處理為 C# 代碼。 執行代碼並顯示結果。 了解 NSwag 一個名為 NSwag 的 .NET Swagger 工具鏈被創建來簡化為使用 ASP.NET Web API、ASP.NET Core 或其他 .NET 框架構建的 API 創建 Swagger 規範(或 OpenAPI 文件)的過程。 NSwag 的特點 生成 Swagger 規範 NSwag 可以使用控制器、模型和 .NET 程式集自動生成 Swagger 規範。 通過分析 API 代碼的結構,NSwag 生成涵蓋 API 端點、請求/響應格式、身份驗證技術等的詳細文件。 連接到 .NET 專案 開發人員可以通過將 NSwag 與 .NET 專案集成,輕鬆地將 Swagger 生成包含在其開發流程中。 開發人員可以通過將 NSwag 添加到 .NET Core 專案中來確保文檔隨代碼庫更新,這將在每次構建專案時自動生成 Swagger 規範。 個性化和擴展性 NSwag 提供了一系列自訂可能性,使開發人員可以輕鬆地調整生成的 Swagger 規範以滿足其獨特需求。 開發人員可以通過配置設置和註釋控制生成的文檔的許多組件,包括響應代碼、參數解釋和路由命名慣例。 開始使用 NSwag 在 C# 控制台應用程式中設置 NSwag NSwag 基本類別庫包括核心、註釋和代碼生成命名空間,通過從 NuGet 安裝即可使用。 如何將 NSwag 集成到 C# 應用程式中以生成代碼和 Swagger 規範,以及 NSwag 如何提高開發流程的效率。 在 Windows 控制台和窗體中實現 NSwag 通過自動化客戶端生成,開發人員可以透過將 NSwag 集成到 Windows 桌面應用程式中,效率高地下生成訪問 API 的代碼。 在開發與在線服務或 RESTful API 通信的桌面應用程式時,這會非常有幫助。 NSwag 可以在網頁應用程式中使用,以生成內部 API 的 API 文檔和使用外部 API 的客戶端代碼。這幫助開發人員保持其應用程式的前端和後端元件的一致性。 NSwag C# 示例 這是顯示如何使用 NSwag 生成 C# 客戶端代碼的代碼示例: using NSwag.CodeGeneration.CSharp; using NSwag; using System.Reflection; using System.CodeDom.Compiler; using Microsoft.CodeAnalysis; using System.Net.Http; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { using (var wclient = new System.Net.WebClient()) { // Create JSON file data from the Swagger .NET Core web API var document = await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json")); var settings = new CSharpClientGeneratorSettings { ClassName = "Weather", CSharpGeneratorSettings = { Namespace = "Demo" } }; var generator = new CSharpClientGenerator(document, settings); var code = generator.GenerateFile(); var assembly = CompileCode(code); var clientType = assembly.GetType("Demo.WeatherClient"); // Replace with your actual client class name using (var httpClient = new HttpClient()) { var client = (IApiClient)Activator.CreateInstance(clientType, httpClient); var result = await client.GetWeatherForecastAsync(); foreach (var item in result) { Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}"); } } } } static Assembly CompileCode(string code) { using (var memoryStream = new MemoryStream()) { var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location); var references = new List<MetadataReference> { MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll")) }; var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient") .WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)) .AddReferences(references) .AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code)); var emitResult = compilation.Emit(memoryStream); if (!emitResult.Success) { Console.WriteLine("Compilation errors:"); foreach (var diagnostic in emitResult.Diagnostics) { Console.WriteLine(diagnostic); } return null; } memoryStream.Seek(0, SeekOrigin.Begin); return Assembly.Load(memoryStream.ToArray()); } } public interface IApiClient { // Replace with your actual method name and return type Task<List<WeatherForecast>> GetWeatherForecastAsync(); } public class WeatherForecast { public DateTime Date { get; set; } public int TemperatureC { get; set; } public int TemperatureF { get; set; } public string Summary { get; set; } } } using NSwag.CodeGeneration.CSharp; using NSwag; using System.Reflection; using System.CodeDom.Compiler; using Microsoft.CodeAnalysis; using System.Net.Http; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { using (var wclient = new System.Net.WebClient()) { // Create JSON file data from the Swagger .NET Core web API var document = await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json")); var settings = new CSharpClientGeneratorSettings { ClassName = "Weather", CSharpGeneratorSettings = { Namespace = "Demo" } }; var generator = new CSharpClientGenerator(document, settings); var code = generator.GenerateFile(); var assembly = CompileCode(code); var clientType = assembly.GetType("Demo.WeatherClient"); // Replace with your actual client class name using (var httpClient = new HttpClient()) { var client = (IApiClient)Activator.CreateInstance(clientType, httpClient); var result = await client.GetWeatherForecastAsync(); foreach (var item in result) { Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}"); } } } } static Assembly CompileCode(string code) { using (var memoryStream = new MemoryStream()) { var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location); var references = new List<MetadataReference> { MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll")) }; var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient") .WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)) .AddReferences(references) .AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code)); var emitResult = compilation.Emit(memoryStream); if (!emitResult.Success) { Console.WriteLine("Compilation errors:"); foreach (var diagnostic in emitResult.Diagnostics) { Console.WriteLine(diagnostic); } return null; } memoryStream.Seek(0, SeekOrigin.Begin); return Assembly.Load(memoryStream.ToArray()); } } public interface IApiClient { // Replace with your actual method name and return type Task<List<WeatherForecast>> GetWeatherForecastAsync(); } public class WeatherForecast { public DateTime Date { get; set; } public int TemperatureC { get; set; } public int TemperatureF { get; set; } public string Summary { get; set; } } } Imports NSwag.CodeGeneration.CSharp Imports NSwag Imports System.Reflection Imports System.CodeDom.Compiler Imports Microsoft.CodeAnalysis Imports System.Net.Http Imports System.IO Imports System.Collections.Generic Imports System.Threading.Tasks Friend Class Program Shared Async Function Main(ByVal args() As String) As Task Using wclient = New System.Net.WebClient() ' Create JSON file data from the Swagger .NET Core web API Dim document = Await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json")) Dim settings = New CSharpClientGeneratorSettings With { .ClassName = "Weather", .CSharpGeneratorSettings = { [Namespace] = "Demo" } } Dim generator = New CSharpClientGenerator(document, settings) Dim code = generator.GenerateFile() Dim assembly = CompileCode(code) Dim clientType = assembly.GetType("Demo.WeatherClient") ' Replace with your actual client class name Using httpClient As New HttpClient() Dim client = DirectCast(Activator.CreateInstance(clientType, httpClient), IApiClient) Dim result = Await client.GetWeatherForecastAsync() For Each item In result Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}") Next item End Using End Using End Function Private Shared Function CompileCode(ByVal code As String) As System.Reflection.Assembly Using memoryStream As New MemoryStream() Dim assemblyPath = Path.GetDirectoryName(GetType(Object).Assembly.Location) Dim references = New List(Of MetadataReference) From {MetadataReference.CreateFromFile(GetType(Object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll"))} Dim compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient").WithOptions(New Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)).AddReferences(references).AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code)) Dim emitResult = compilation.Emit(memoryStream) If Not emitResult.Success Then Console.WriteLine("Compilation errors:") For Each diagnostic In emitResult.Diagnostics Console.WriteLine(diagnostic) Next diagnostic Return Nothing End If memoryStream.Seek(0, SeekOrigin.Begin) Return System.Reflection.Assembly.Load(memoryStream.ToArray()) End Using End Function Public Interface IApiClient ' Replace with your actual method name and return type Function GetWeatherForecastAsync() As Task(Of List(Of WeatherForecast)) End Interface Public Class WeatherForecast Public Property [Date]() As DateTime Public Property TemperatureC() As Integer Public Property TemperatureF() As Integer Public Property Summary() As String End Class End Class $vbLabelText $csharpLabel 對於我們希望使用的 API,我們指定 Swagger 規範的 URL(swaggerUrl)。 然後定義生成的客戶端代碼並執行導入到 DLL 程式集中的定義。 OpenApiDocument 用於從給定的 URL 異步加載 Swagger 文件,使用 FromJsonAsync。 為了修改生成的客戶端代碼,我們調整代碼生成器的設置(CSharpClientGeneratorSettings)。 在此示例中,生成的客戶端代碼的類名和命名空間已指定。 從加載的 Swagger 文件中,我們構建了一個 CSharpClientGenerator 的實例並用它生成客戶端代碼。 創建的客戶端代碼保存到指定的輸出路徑。 我們響應在過程中可能出現的任何異常或錯誤,在控制台上顯示相關通知。 NSwag 操作 生成客戶端代碼 NSwag 可以使用 Swagger 規範生成多種語言的客戶端代碼,包括 Java、TypeScript 和 C#。 這使開發人員可以輕鬆地在其應用程式中使用 API。 生成伺服器代碼 使用 Swagger 規範為基礎,NSwag 也可以生成伺服器代碼,如 ASP.NET Core 控制器。 這有助於快速生成 API 實施的伺服器端代碼。 生成互動式 API 文檔 給定一個 Swagger 規範,NSwag 可以生成互動式 API 文檔,如 Swagger UI。 此文檔提供了一個易於使用的界面,用於探索和測試 API 端點。 生成代理類別 為了整合 SOAP 相關的 API,NSwag 可以生成代理類別。 這使程式設計師能夠在其應用程式中使用生成的客戶端代碼來訪問 SOAP 服務。 驗證 Swagger 規範 NSwag 能夠驗證 Swagger 規範,以確保它們遵循 OpenAPI/Swagger 標準。 這可以幫助發現 API 文檔中的任何錯誤或不一致之處。 將 NSwag 與 IronPDF 整合 開發人員可以通過將 NSwag 與 IronPDF 整合來利用這兩種技術的優勢來提高 API 文檔的工作流程。 開發人員可以使用 NSwag 生成 Swagger 規範,然後使用 IronPDF 將其轉換為 PDFs,生成易於共享和可以脫機閱讀的全面的 .NET 網頁 API 文檔。 整合過程包括以下步驟: IronPDF 在HTML 到 PDF轉換方麵表現出色,確保準確保持原始佈局和樣式。 它非常適合從網路內容生成 PDF,如報告、發票和文檔。 支持 HTML 文件、URL 和原始 HTML 字串的 IronPDF 可以輕鬆生成高質量的 PDF 文檔。 using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' 1. Convert HTML String to PDF Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>" Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent) pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf") ' 2. Convert HTML File to PDF Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath) pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf") ' 3. Convert URL to PDF Dim url = "http://ironpdf.com" ' Specify the URL Dim pdfFromUrl = renderer.RenderUrlAsPdf(url) pdfFromUrl.SaveAs("URLToPDF.pdf") End Sub End Class $vbLabelText $csharpLabel 安裝 IronPDF 開始 Visual Studio 項目。 選擇“工具” > “NuGet 套件管理器” > “套件管理器控制台”。 打開命令提示符並在套件管理控制台中鍵入以下命令: Install-Package IronPdf 或者,您也可以使用 NuGet 套件管理器為解決方案安裝 IronPDF。 從搜索結果中瀏覽並選擇 IronPDF 套件,然後單擊「安裝」選項。 Visual Studio 將代表您處理下載和安裝。 NuGet 將安裝 IronPDF 包和專案所需的任何依賴項。 安裝後,IronPDF 可以作用於您的專案。 通過 NuGet 網站安裝 關於 IronPDF 的功能、兼容性和可用下載的其他信息,請訪問IronPDF 在 NuGet 的頁面。 使用 DLL 安裝 或者,您也可以直接在專案中結合 IronPDF 的 DLL 文件。要下載包含 DLL 的 ZIP 文件,請單擊IronPDF 下載鏈接。 解壓縮文件並將 DLL 添加到您的項目中。 實施邏輯 利用 NSwag,開發人員可以更快速地創建 API 文件和客戶端代碼,使用CodeGeneration.CSharp搭配 IronPDF。 集成工作流程包括以下步驟: 生成客戶端代碼: 使用 NSwag.CodeGeneration.CSharp 從 Swagger 規範生成 C# 客戶端代碼。 此步驟自動創建與 API 端點通信的客戶端類別和方法。 利用 NSwag 獲取數據: 使用 CodeGeneration.CSharp 從 Swagger 規範生成 JSON 文檔。 在此階段,請求/響應格式、身份驗證技術和 API 客戶端端點會創建為人能夠閱讀的文檔。 將 JSON 轉換為 PDF: 使用 IronPDF 將生成的代碼結果轉換為 PDF 文檔。 在此階段,HTML 文本轉換為格式精美的 PDF 文檔,可供共享和分發。 改善 PDF 文檔: 使用 IronPDF 添加其他內容,比如標題、頁腳、水印或特有品牌於 PDF 文檔。 此階段允許開發人員個性化 PDF 文檔的外觀和品牌形象,以滿足其偏好選擇。 using IronPdf; using System.Text; using System.Collections.Generic; StringBuilder sb = new StringBuilder(); foreach (var item in result) { sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>"); } var renderer = new HtmlToPdf(); var pdf = renderer.RenderHtmlAsPdf(sb.ToString()); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF generated successfully!"); Console.ReadKey(); using IronPdf; using System.Text; using System.Collections.Generic; StringBuilder sb = new StringBuilder(); foreach (var item in result) { sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>"); } var renderer = new HtmlToPdf(); var pdf = renderer.RenderHtmlAsPdf(sb.ToString()); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF generated successfully!"); Console.ReadKey(); Imports IronPdf Imports System.Text Imports System.Collections.Generic Private sb As New StringBuilder() For Each item In result sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>") Next item Dim renderer = New HtmlToPdf() Dim pdf = renderer.RenderHtmlAsPdf(sb.ToString()) pdf.SaveAs("output.pdf") Console.WriteLine("PDF generated successfully!") Console.ReadKey() $vbLabelText $csharpLabel 以上代碼從結果物件中訪問檢索到的數據,並將欄位Date、TemperatureF、TemperatureC和Summary連接到段落中,並循環指定 PDF 的輸出文件路徑,然後通知用戶成功生成了 PDF。 下面是上述代碼的結果。 結論 CodeGeneration NSwag 技術如 CSharp 和 IronPDF 密切合作以簡化客戶端代碼生成和 API 文檔的流程。 開發人員透過將這些工具整合到 C# 應用程式中,可以加快基於 API 的解決方案的創建、實現 API 文檔的自動生成,並生成專業、精致的 PDF 文件。 NSwag.CodeGeneration.CSharp 與 IronPDF 提供了全面解決方案幫助開發人員高效地將其 API 記錄和生產 C# 客戶端代碼,無論是否正在開發桌面、網絡或雲端應用程式。 Lite 捆綁包包括一次性授權、為期一年的軟體維護和一個對程式庫的升級。 IronPDF 提供有限的免費許可證,在重新分發和時間上有一定限制。用戶可以在檢驗期內評估解決方案而不必看到水印。 關於價格與授權的更多信息,請參閱IronPDF 的授權信息。 有關 Iron Software 的產品庫的更多信息,請訪問Iron Software 程式庫頁面。 常見問題解答 NSwag 如何幫助生成 C# 的 API 規範? NSwag 能夠自動從 .NET Core 項目中生成 API 規範,稱為 Swagger 或 OpenAPI 文檔。這確保了 API 文檔始終與代碼庫保持同步。 將 Swagger 規範轉換為 PDF 文檔的過程是什麼? 要將 Swagger 規範轉換為 PDF 文檔,可以使用 IronPDF。首先,使用 NSwag 生成 Swagger 規範,然後利用 IronPDF 將這些規範的 HTML 內容轉換為高質量的 PDF。 如何將 NSwag 集成到 .NET 項目中? 將 NSwag 集成到 .NET 項目中,包括通過 NuGet 安裝 NSwag 庫,配置它以便在構建過程中生成 Swagger 規範,並使用生成的規範進行文檔和代碼生成。 NSwag 可以從一個 Swagger 規範生成客戶端和服務器端代碼嗎? 是的,NSwag 能夠從單個 Swagger 規範中生成 C#、Java 和 TypeScript 等語言的客戶端代碼,以及服務器端代碼如 ASP.NET Core 控制器。 IronPDF 如何增強 API 文檔工作流程? IronPDF 通過允許開發人員將基於 HTML 的 API 文檔轉換為專業的、可共享的 PDF 文檔,增強了 API 文檔工作流程,從而使信息可以離線訪問。 在 Visual Studio 項目中使用 IronPDF 需要哪些步驟? 要在 Visual Studio 項目中使用 IronPDF,可以通過搜索 IronPDF 並單擊“安裝”以使用 NuGet 包管理器安裝它,或使用包管理器控制台的命令Install-Package IronPdf。 如何使用 NSwag 生成交互式 API 文檔? NSwag 可以通過生成 Swagger UI 來生成交互式 API 文檔,這為在瀏覽器中直接探索和測試 API 端點提供了一個用戶友好的界面。 使用 NSwag 進行 API 文檔的好處有哪些? NSwag 自動化 API 文檔生成,確保其始終與代碼庫保持最新。它還支持創建交互式文檔和客戶端代碼,簡化開發過程。 IronPDF 如何處理 HTML 內容以創建 PDF? IronPDF 使用其渲染引擎將 HTML 內容(包括 CSS 和 JavaScript)轉換為 PDF 格式,是從基於網頁的內容創建精確且可離線準備的文檔的理想選擇。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新日期 9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新日期 9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 更新日期 8月 5, 2025 C#開關模式匹配(對開發者來說是如何工作的) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 Dapper C#(對於開發者的運行原理)Flunt C#(對於開發者的運行...