.NET 幫助

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

發佈 2023年12月12日
分享:

在廣大的程式語言領域中,提高代碼可讀性和效率是至關重要的,而C#語言作為中流砥柱,提供了多樣化的結構來幫助您的編程需求。在其強大的工具庫中,”“C# Switch 語句" 突出顯著。本綜合指南將探討C#語言中它們的細微複雜性。我們將深入研究其多方面的用途,並通過涉及實際情況的真實案例來闡明其實際應用。 IronPDF這段旅程不僅旨在解開它的機制,還要強調它在 C# 開發廣泛領域中的重要性。

1. 理解 Switch 語句

在 C# 中,switch 語句是一種控制流程語句,能讓開發人員在處理多個條件時寫出更乾淨和更簡潔的代碼。當需要根據某個變數的值執行不同的操作時,switch 語句特別有用。

這使得它成為 if-else 語句的完美替代方案,當關鍵詞/變數是焦點時,它能提高代碼的可讀性和可維護性。與可能導致嵌套結構和潛在代碼複雜性的 if-else 語句不同,switch 語句提供了一種更有條理的替代方案。它在代碼可讀性上特別有幫助,尤其是在工作中需要根據變數的值觸發不同動作時。

現在,讓我們仔細看看在 switch 語句上下文中 break 的作用。在 C# 中,break 語句用於終止與 switch 塊內特定 case 關聯的代碼塊的執行。當匹配或 switch case 匹配並執行對應的代碼塊時,break 語句在防止隨後的 case 被評估方面至關重要。如果你想在語句中包含 fall-through 行為,應使用 goto 語句而不是 break

以下是一個 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 敘述的最基本形式。它將變數與常量值進行比較,並執行與首個匹配值或 case 關聯的代碼塊。如果沒有找到匹配項,則執行默認的代碼塊。

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. switch 表達式 (C# 8.0 及更高版本)

在 C# 8.0 中,引入了一種新的、更簡潔的 switch 語句形式,稱為 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. 介紹IronPDF在C

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. 結論

總結來說,C# 的 switch 語句作為一種強大的控制流工具,與傳統的 if-else 語句相比,為開發者提供了一種更有組織性和簡潔的方法來處理多種條件。通過基於變量值來分類代碼執行,switch 語句可以通過提升可讀性和可維護性來改進您的編碼。

switch 語句的多功能性在各種類型中得到了體現,包括簡單的 switch、基於模式的 switch 模塊、switches 和 switch 表達式,每種類型都適用於特定的編碼情境。

IronPDF 庫的集成展示了 switch 語句在根據用戶輸入生成動態 PDF 文檔中的實際應用,並且展示了這個特性如何在現實場景中被利用來增強您的 C# 編碼的靈活性和效率。

IronPDF,讓您測試其功能,欲瞭解有關HTML轉換為PDF的更多資訊,請訪問以下內容 連結.

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

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

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >