.NET 幫助

C# Switch 語句(它如何適用於開發者)

發佈 2023年12月12日
分享:

在廣闊的程式語言領域中,提升程式碼的可讀性和效率是至關重要的,而 C# 語言作為中流砥柱,提供多樣化的結構來協助滿足您的編程需求。 在其強大的工具庫中,“C# Switch 語句「顯著地脫穎而出。」 本綜合指南將深入探索它們在 C# 語言中的細微複雜性。 我們將深入探討其多方面的用途,並通過涉及現實世界情境的實例說明其實際應用。IronPDF,這是一個適用於 PDF 生成功能的多功能 C# 函式庫。 這段旅程不僅旨在解開其機制,還強調其在廣泛的 C# 開發領域中的重要性。

1. 理解 switch 語句

在 C# 中,switch 語句是一種控制流程語句,讓開發者在處理多個條件時能夠撰寫更簡潔和清晰的代碼。 當您想根據特定變數的值執行不同操作時,它特別有用。

這使得當關鍵字/變數是中心焦點時,成為 if-else 陳述式的理想替代方案,因為它增加了代碼的可讀性和維護性。 與可能導致巢狀結構和潛在代碼複雜性的 if-else 語句不同,switch 語句提供了一個更為有條理的替代選擇。當處理需要根據其值觸發不同操作的變量時,switch 語句特別有用。

現在,讓我們更仔細地看看在 switch 語句中 break 的作用。 在 C# 中,break 語句用於終止與 switch 區塊中的特定案例相關聯的代碼區塊的執行。 當匹配或 switch case 成功匹配到某個情況,並執行對應的代碼塊時,break 語句在防止後續情況被評估時至關重要。 如果您希望在語句中實現貫穿行為,應該使用 goto 語句而不是 break

以下是 C# 中 switch 語句的基本結構:

switch (variable)
{
    case a:
        // Code to be executed if variable equals value1
        break;
    case c:
        // Code to be executed if variable equals value2
        break;
    // More cases can be added as needed
    default:
        // Default Case to be executed if none of the cases match
        break;
}
switch (variable)
{
    case a:
        // Code to be executed if variable equals value1
        break;
    case c:
        // Code to be executed if variable equals value2
        break;
    // More cases can be added as needed
    default:
        // Default Case to be executed if none of the cases match
        break;
}
Select Case variable
	Case a
		' Code to be executed if variable equals value1
	Case c
		' Code to be executed if variable equals value2
	' More cases can be added as needed
	Case Else
		' Default Case to be executed if none of the cases match
End Select
VB   C#

現在,讓我們來探討不同類型的 switch 語句及其使用情境。

2. 切換語句的類型及其用途

2.1. 簡單的 switch 陳述式

這是 switch 陳述式的最基本形式。 它將變數與常數值進行比較,並執行與第一個匹配值或案例相關聯的代碼塊。 如果未找到匹配項,則執行默認代碼塊。

int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // More cases...
    default:
        Console.WriteLine("Invalid day");
        break;
}
int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // More cases...
    default:
        Console.WriteLine("Invalid day");
        break;
}
Dim day As Integer = 3
Select Case day
	Case 1
		Console.WriteLine("Monday")
	Case 2
		Console.WriteLine("Tuesday")
	' More cases...
	Case Else
		Console.WriteLine("Invalid day")
End Select
VB   C#

2.2. 使用模式的 switch 語句(C# 7.0及更高版本)

C# 7.0 引入了個案模式匹配,使得 switch 語句更加具表達力和靈活性。 模式匹配表達式可以包含類型模式、屬性模式等,這使得程式碼更加可讀。

object obj = "Hello";
switch (obj)
{
    case string s:
        Console.WriteLine($"String of length {s.Length}");
        break;
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    // More cases...
    default:
        Console.WriteLine("Other type");
        break;
}
object obj = "Hello";
switch (obj)
{
    case string s:
        Console.WriteLine($"String of length {s.Length}");
        break;
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    // More cases...
    default:
        Console.WriteLine("Other type");
        break;
}
Dim obj As Object = "Hello"
Select Case obj
'INSTANT VB TODO TASK: The following 'case' pattern variable is not converted by Instant VB:
'ORIGINAL LINE: case string s:
	Case String s
		Console.WriteLine($"String of length {s.Length}")
'INSTANT VB TODO TASK: The following 'case' pattern variable is not converted by Instant VB:
'ORIGINAL LINE: case int i:
	Case Integer i
		Console.WriteLine($"Integer: {i}")
	' More cases...
	Case Else
		Console.WriteLine("Other type")
End Select
VB   C#

2.3. 切換表達式(C# 8.0及之後版本)

在 C# 8.0 中,引入了一種新的、更簡潔的 switch 表達式形式。 它们可以用在需要常量表达值的地方,使代码更简洁优雅。

int day = 2;
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    // More cases...
    _ => "Invalid day"
};
Console.WriteLine(result);
int day = 2;
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    // More cases...
    _ => "Invalid day"
};
Console.WriteLine(result);
Dim day As Integer = 2
Dim tempVar As String
Select Case day
	Case 1
		tempVar = "Monday"
	Case 2
		tempVar = "Tuesday"
	' More cases...
	Case Else
		tempVar = "Invalid day"
End Select
Dim result As String = tempVar
Console.WriteLine(result)
VB   C#

現在我們已經對switch語句有了堅實的理解,讓我們看看如何在實際情境中使用IronPDF於C#應用它們。

3. 在 C# 中介紹 IronPDF

IronPDF是一個受歡迎的C#程式庫,允許開發人員輕鬆生成和操作PDF文件。 它簡化了與 PDF 檔案創建、編輯和渲染相關的任務。 讓我們探討如何使用 switch 陳述式結合 IronPDF 來增強程式碼的功能性和組織性。

3.1. 使用 Switch 語句與 IronPDF

假設您正在開發一個文件管理系統,您需要根據文件內容的使用情況生成不同類型的PDF。 以下是如何使用 IronPDF 運用 switch 語句:

using IronPdf;
using System;
class generatePDF {
    public static void Main(String [] args)
    {
        var renderer = new ChromePdfRenderer();
        string mystring = null;
        Console.WriteLine("Enter your input : ");
        Console.WriteLine("Enter 'I' for Invoice");
        Console.WriteLine("Enter 'R' for Report");
        mystring = Console.ReadLine();
        switch (mystring)
        {
            case "R":
                var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
                pdf.SaveAs("Report.pdf");
                break;
            case "I":
                var pdfi = renderer.RenderHtmlFileAsPdf("report.html");
                pdfi.SaveAs("Invoice.pdf");
                break;
        }
    }
}
using IronPdf;
using System;
class generatePDF {
    public static void Main(String [] args)
    {
        var renderer = new ChromePdfRenderer();
        string mystring = null;
        Console.WriteLine("Enter your input : ");
        Console.WriteLine("Enter 'I' for Invoice");
        Console.WriteLine("Enter 'R' for Report");
        mystring = Console.ReadLine();
        switch (mystring)
        {
            case "R":
                var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
                pdf.SaveAs("Report.pdf");
                break;
            case "I":
                var pdfi = renderer.RenderHtmlFileAsPdf("report.html");
                pdfi.SaveAs("Invoice.pdf");
                break;
        }
    }
}
Imports IronPdf
Imports System
Friend Class generatePDF
	Public Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		Dim mystring As String = Nothing
		Console.WriteLine("Enter your input : ")
		Console.WriteLine("Enter 'I' for Invoice")
		Console.WriteLine("Enter 'R' for Report")
		mystring = Console.ReadLine()
		Select Case mystring
			Case "R"
				Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")
				pdf.SaveAs("Report.pdf")
			Case "I"
				Dim pdfi = renderer.RenderHtmlFileAsPdf("report.html")
				pdfi.SaveAs("Invoice.pdf")
		End Select
	End Sub
End Class
VB   C#

此 C# 程式使用 IronPDF 庫根據使用者輸入動態生成 PDF 文件。 系統提示用戶輸入「I」代表發票或「R」代表報告。 根據輸入,程式使用 ChromePdfRenderer 類別來渲染相應的 HTML 檔案。(用於報告的"invoice.html"或用於發票的"report.html")成為 PDF 格式。 生成的 PDF 然後以適當的檔名保存,“Report.pdf”用於報告,而“Invoice.pdf”用於發票。這種方法通過控制台界面提供了一種靈活且互動的方式來生成特定類型的 PDF 文件。

3.2. 報告示例

在以下範例中,我們將使用使用者的輸入來建立報告。

控制台輸入:

C# switch 陳述式(開發人員如何使用) 圖1 - 使用者在控制台中的輸入(報告)

輸出 PDF:

C# Switch 語句(開發人員如何使用)圖 2 - 輸出 PDF 報告

3.3. 發票範例

在此案例陳述範例中,我們將使用來自用戶的輸入和 switch 陳述來建立發票。

控制台輸入:

C# Switch 語句(開發者使用介紹)圖 3 - 在控制台中的用戶輸入(發票)

輸出 PDF:

C# 切換語句(開發者如何使用)圖 4 - 輸出 PDF(發票)

4. 結論

總而言之,相較於傳統的 if-else 語句,C# 的 switch 語句作為一個強大的控制流程工具,為開發者提供了一種更有組織性和精簡的方法來處理多重條件。 通過根據變數值對代碼執行進行分類,switch 語句可以通過提高可讀性和可維護性來促進您的編碼。

switch 語句的多樣性透過多種類型得以展現,包括簡單的 switch 語句、基於模式的 switch 區塊,以及 switch 運算式,各自針對特定的程式碼情境提供了解決方案。

集成IronPDF庫展示了在根據用戶輸入生成動態PDF文件時運用switch語句的實際應用,並展示了如何在實際場景中利用此功能來提高C#編碼的靈活性和效率。

要探索的功能IronPDF了解更多有關 HTML 到 PDF 轉換的資訊,請造訪IronPDF 教學課程.

< 上一頁
Visual Studio Code C#(開發人員的運作方式)
下一個 >
Solid 原則 C#(它如何為開發人員工作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >