.NET幫助 C# Case Statement(開發者的工作原理) Curtis Chau 更新日期:7月 28, 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 C# 中的switch 語句提供了一種比多個 if-else 區塊更簡化且可讀性更高的替代方案。 當您有一個變量可以取多個不同的值,並且需要根據該值執行不同的代碼時,這是有益的。 switch 語句評估一個表達式,並根據匹配的值執行代碼,使其成為您代碼中的決策制定的核心部分。 儘管 if-else 結構對於簡單條件或檢查很有用,但在處理更複雜的條件檢查時,特別是那些基於單個變量或模式匹配表達式的檢查時,switch case 語句更為出色。 與 if 語句相比,它們提供了更清晰且更易於理解的語法,這對於編寫和維護代碼都至關重要。 Switch 語句的基礎 什麼是 Switch 語句? C# 中的 switch 語句是一種控制結構,用於選擇將執行的多條代碼路徑之一。 選擇是基於一個值或一個表達式。 它是一個使用多個 if-else 條件的高效替代方案,特別是當處理具有多個不同值的變量時。 語法 switch 語句的基本語法很簡單: // Switch statement switch (variable) { case value1: // Code to execute if variable equals value1 break; case value2: // Code to execute if variable equals value2 break; // More cases as needed default: // Code to execute if variable doesn't match any case break; } // Switch statement switch (variable) { case value1: // Code to execute if variable equals value1 break; case value2: // Code to execute if variable equals value2 break; // More cases as needed default: // Code to execute if variable doesn't match any case break; } ' Switch statement Select Case variable Case value1 ' Code to execute if variable equals value1 Case value2 ' Code to execute if variable equals value2 ' More cases as needed Case Else ' Code to execute if variable doesn't match any case End Select $vbLabelText $csharpLabel switch (變量):這指定要評估的變量或表達式。 case 值1:這些是與變量檢查的不同值或條件。 break:此關鍵字用於在執行匹配的 case 後退出 switch 區塊。 default 語句:如果指定的 case 都不匹配變量,則此區塊執行。 理解 Break 語句 switch 中的 break 語句至關重要。 它防止 "貫穿" 行為,即即使已滿足匹配條件也將執行移動到後續 case。 每個 case 區塊通常以 break 語句結束,以確保僅執行匹配 case 下的代碼。 比較 Switch 語句和 If-Else 語句 if-else 語句的結構涉及檢查條件,如果條件為真則執行代碼區塊,而 switch 語句則將單個變量或表達式與多個可能的值進行比較。 這使得 switch 語句在有許多條件或 case 模式需要檢查時更簡潔且易於閱讀。 範例:使用 Switch 語句 int number = 3; switch (number) { case 1: Console.WriteLine("One"); break; case 2: Console.WriteLine("Two"); break; case 3: Console.WriteLine("Three"); break; default: Console.WriteLine("Other Number"); // Print to console break; } int number = 3; switch (number) { case 1: Console.WriteLine("One"); break; case 2: Console.WriteLine("Two"); break; case 3: Console.WriteLine("Three"); break; default: Console.WriteLine("Other Number"); // Print to console break; } Dim number As Integer = 3 Select Case number Case 1 Console.WriteLine("One") Case 2 Console.WriteLine("Two") Case 3 Console.WriteLine("Three") Case Else Console.WriteLine("Other Number") ' Print to console End Select $vbLabelText $csharpLabel 在這個範例中,程序將輸出 "Three",因為數字匹配了 case 3。 default case 的角色 理解 Switch 區塊中的 Default 在 switch 語句中,default case 扮演著關鍵角色。 它作為 "廣撈" 選項,在沒有指定的 case 標籤匹配 switch 表達式的值時執行。 雖然它是可選的,但包含 default case 是處理意外或未知值的良好做法。 如何以及何時使用 Default 語句 當您希望在沒有特定 case 匹配時執行代碼區塊時,使用 default case。 它確保 switch 語句無論輸入如何都具有定義的行為。 default case 使用 default 關鍵字聲明,後接冒號。 default: // Code to execute if no case matches break; default: // Code to execute if no case matches break; Case Else ' Code to execute if no case matches break $vbLabelText $csharpLabel default case 可以放置在 switch 區塊的任何位置,但通常為了可讀性放在最後。 範例:帶有 Default Case 的 Switch 語句 考慮一個您正在評估一周中的某一天的場景: int day = 5; string dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; case 6: dayName = "Saturday"; break; case 7: dayName = "Sunday"; break; default: dayName = "Invalid day"; break; } Console.WriteLine(dayName); int day = 5; string dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; case 6: dayName = "Saturday"; break; case 7: dayName = "Sunday"; break; default: dayName = "Invalid day"; break; } Console.WriteLine(dayName); Dim day As Integer = 5 Dim dayName As String Select Case day Case 1 dayName = "Monday" Case 2 dayName = "Tuesday" Case 3 dayName = "Wednesday" Case 4 dayName = "Thursday" Case 5 dayName = "Friday" Case 6 dayName = "Saturday" Case 7 dayName = "Sunday" Case Else dayName = "Invalid day" End Select Console.WriteLine(dayName) $vbLabelText $csharpLabel 在這個範例中,如果 day 的值在 1 到 7 以外,則會執行 default case,並將 dayName 設置為 "無效的日子"。 Default Case 的最佳實踐 始終包含 Default:即使您認為已涵蓋所有可能的 case,也要包含 default case 以處理不可預見的值。 有意義的操作:使用 default case 執行有意義的操作,例如記錄錯誤、設置默認值或通知用戶未知的值。 進階 Switch 特性 C# 中的 Switch 表達式簡介 隨著 C# 的演變,引入了 switch 表達式作為處理多個條件分支的更緊湊且具表達力的方式。 與傳統的 switch 語句不同,switch 表達式返回值且更精簡,使其成為現代 C# 程式設計中的一個強大工具。 語法 of Switch Expressions C# 中 switch 表達式的語法是 switch case 語句的更緊湊形式。 這裡是基本結構: var result = variable switch { value1 => result1, value2 => result2, _ => defaultResult }; var result = variable switch { value1 => result1, value2 => result2, _ => defaultResult }; 'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB: 'var result = variable switch '{ ' value1 => result1, ' value2 => result2, ' _ => defaultResult '}; $vbLabelText $csharpLabel 下劃線 (_) 符號在 switch 表達式中表示默認 case,功能類似於傳統 switch 語句中的 default 區塊。 範例:使用 Switch 表達式 考慮一個需要對溫度讀數進行分類的場景: int temperature = 25; string weatherDescription = temperature switch { <= 0 => "Freezing", < 20 => "Cold", < 30 => "Mild", _ => "Hot" }; Console.WriteLine(weatherDescription); int temperature = 25; string weatherDescription = temperature switch { <= 0 => "Freezing", < 20 => "Cold", < 30 => "Mild", _ => "Hot" }; Console.WriteLine(weatherDescription); Dim temperature As Integer = 25 'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB: 'string weatherDescription = temperature switch '{ ' <= 0 => "Freezing", ' < 20 => "Cold", ' < 30 => "Mild", ' _ => "Hot" '}; Console.WriteLine(weatherDescription) $vbLabelText $csharpLabel 在這個範例中,switch 表達式簡潔地對溫度進行了分類,default case (_) 涵蓋未匹配的其他情況。 使用 Switch 表達式模式匹配 C# 中的 switch 表達式允許模式匹配,使其更加通用。您可以匹配類型、值,甚至模式: object obj = // some object; string description = obj switch { int i => $"Integer: {i}", string s => $"String: {s}", _ => "Unknown type" }; object obj = // some object; string description = obj switch { int i => $"Integer: {i}", string s => $"String: {s}", _ => "Unknown type" }; 'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB: 'object obj = string description = obj switch '{ ' int i => $"Integer: {i}", ' string s => $"String: {s}", ' _ => "Unknown type" '}; $vbLabelText $csharpLabel C# Switch 語句 vs. Switch 表達式 C# Switch 語句:主要用於根據變量的值執行不同的代碼區塊。 每個 case 都需要一個 break 語句。 Switch 表達式:在 C# 8.0 中引入,提供了更簡潔的語法,通常用於需要根據條件返回值的情況。 將 Switch 語句與 C# 中的 IronPDF 整合 探索 IronPDF 功能是一個 .NET PDF 庫,用於創建、編輯和處理 PDF 文檔。 當與 C# 的 switch 語句或表達式結合使用時,它成為一個強大的工具,用於基於特定條件處理各種 PDF 相關操作。 此整合對於需要根據 PDF 內容或元數據進行決策的任務特別有用。 IronPDF 的關鍵功能是將 HTML 轉換為 PDF 並保留佈局和樣式。 這對於從網站內容創建 PDF,包含報告、發票和文件非常理想。 HTML 文件、URL 和 HTML 字串都可以轉換為 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 和 Switch 語句進行條件水印 讓我們考慮一個場景,您有一個 PDF 文檔,並希望根據頁數應用不同的水印。 這是您可以使用 IronPDF 結合 C# 的 switch 語句實現的方法: using IronPdf; class Program { static void Main(string[] args) { IronPdf.License.LicenseKey = "Your-License-Code"; PdfDocument pdf = PdfDocument.FromFile("sample.pdf"); // Define different watermark HTML for each case string watermarkHtmlOnePage = "<div style='color:red;'>One Page Document</div>"; string watermarkHtmlTwoPage = "<div style='color:blue;'>Two Page Document</div>"; switch (pdf.PageCount) { case 1: // Apply watermark for one-page document pdf.ApplyWatermark(watermarkHtmlOnePage); break; case 2: // Apply watermark for two-page documents pdf.ApplyWatermark(watermarkHtmlTwoPage); break; default: // Apply a default watermark for other cases pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>"); break; } // Save the watermarked PDF pdf.SaveAs("watermarked.pdf"); } } using IronPdf; class Program { static void Main(string[] args) { IronPdf.License.LicenseKey = "Your-License-Code"; PdfDocument pdf = PdfDocument.FromFile("sample.pdf"); // Define different watermark HTML for each case string watermarkHtmlOnePage = "<div style='color:red;'>One Page Document</div>"; string watermarkHtmlTwoPage = "<div style='color:blue;'>Two Page Document</div>"; switch (pdf.PageCount) { case 1: // Apply watermark for one-page document pdf.ApplyWatermark(watermarkHtmlOnePage); break; case 2: // Apply watermark for two-page documents pdf.ApplyWatermark(watermarkHtmlTwoPage); break; default: // Apply a default watermark for other cases pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>"); break; } // Save the watermarked PDF pdf.SaveAs("watermarked.pdf"); } } Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) IronPdf.License.LicenseKey = "Your-License-Code" Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf") ' Define different watermark HTML for each case Dim watermarkHtmlOnePage As String = "<div style='color:red;'>One Page Document</div>" Dim watermarkHtmlTwoPage As String = "<div style='color:blue;'>Two Page Document</div>" Select Case pdf.PageCount Case 1 ' Apply watermark for one-page document pdf.ApplyWatermark(watermarkHtmlOnePage) Case 2 ' Apply watermark for two-page documents pdf.ApplyWatermark(watermarkHtmlTwoPage) Case Else ' Apply a default watermark for other cases pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>") End Select ' Save the watermarked PDF pdf.SaveAs("watermarked.pdf") End Sub End Class $vbLabelText $csharpLabel 這是一個具有一頁的輸出 PDF 文件: 結論 在本教程中,我們探索了 C# 中的 switch case 語句,這是一種發達語言中的基本決策形式。 我們首先了解了其基本結構,並與傳統的 if-else 語句進行比較,強調了其在可讀性和處理多種條件時的簡單性。 我們創建了簡單的 switch case,以 default case 處理各種情況,並探索了進階功能如 switch 表達式。 通過一個結合泛 PDF 動態處理的範例展示了 switch 語句的實際應用,顯示了 switch 語句如何成為程式設計師工具包中的一個寶貴工具。 IronPDF 提供免費試用版以探索功能,讓您可以探索其功能。 若想繼續使用和獲得完整工具套件的訪問,IronPDF 的許可證從有競爭力的價格起步,為您提供一個全面的 C# PDF 處理解決方案。 常見問題解答 如何使用 switch 語句來管理 C# 中的 PDF 處理? 您可以使用 switch 語句來根據條件(例如頁數或文檔類型)執行不同的 PDF 操作,使用像 IronPDF 這樣的庫。 C# 中的 switch 語句和 switch 表達式有什麼區別? switch 語句提供了一種結構化的方法來處理多個條件,通過 break 語句來防止穿透,而 switch 表達式更簡潔,返回一個值,並消除了使用 break 語句的需要。 為什麼默認情況在 C# switch 語句中很重要? 默認情況至關重要,因為它確保意外值被優雅地處理,通過提供回退操作防止錯誤,當沒有情況匹配表達式時。 switch 表達式如何提高 C# 中的代碼可讀性? switch 表達式通過提供一種簡潔的條件分支語法來提高代碼可讀性,使開發人員能夠以更緊湊的形式表達邏輯,這使得代碼更易於理解和維護。 C# 應用程序中可以使用 switch 語句來處理錯誤嗎? 是的,switch 語句可以通過根據錯誤代碼或條件將程序導向特定的錯誤處理例程來改善 C# 應用程序的健壯性。 使用 IronPDF 的 switch 語句的一個實際例子是什麼? 一個實際例子是使用 switch 語句根據 PDF 文檔的頁數或其他標準應用不同的水印,利用 IronPDF 進行 PDF 操作。 IronPDF 如何促進基於 switch 的 PDF 操作? IronPDF 通過提供一套強大的工具和方法來促進基於 switch 的 PDF 操作,這些工具和方法可以使用 switch 語句有條件地觸發,用於 PDF 的轉換、編輯和渲染等任務。 使用 switch 語句進行 PDF 處理的常見用例有哪些? 常見用例包括根據文檔元數據應用不同的處理規則,例如根據文檔的類型或內容應用特定的格式或轉換。 IronPDF 如何通過 switch 語句協助創建可讀和可維護的代碼? IronPDF 通過提供全面的 PDF 操作方法來協助,這些方法可以通過 switch 語句組織,從而產生具有結構化邏輯的可讀和可維護的代碼。 switch 語句在決策中比 if-else 塊有什麼優勢? switch 語句提供了一種更組織化和不易出錯的結構來處理多個離散的條件,增強了代碼的清晰性,並降低了錯誤的可能性,與冗長的 if-else 鏈相比。 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時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 C# 隊列(開發者的工作原理)C# 保護(開發者的工作原理)