.NET 幫助

C# 案例陳述句(如何為開發人員運作)

發佈 2024年1月4日
分享:

C# 中的 switch 語句提供了一種更簡化且更具可讀性的替代方案,取代多重if-else表達式語句。 當您有一個變數可以取多個不同的值,並且您需要根據該值執行不同的代碼時,這是有益的。 此案例陳述式評估一個表達式並根據匹配的值執行靜態的 void main 代碼,這使它成為程式碼中決策制定的重要組成部分。

雖然 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 or fall through behavior
        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 or fall through behavior
        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 or fall through behavior
End Select
VB   C#
  • 開關(變數)`**:這是您指定要評估的變數或表達式的位置,如上面的程式所示。
  • case value1:這些是您用來檢查變數的不同值或條件。
  • break:此關鍵字用於在匹配的情況執行後退出 switch 區塊。
  • default 語句:如果沒有指定的 case 匹配變數,這個可選的 goto 區塊將會執行。

瞭解中斷語句

在 switch 中,break 語句至關重要。 它可以防止“落空”行為,即即使匹配條件已經滿足,執行仍然移動到後續的情況。 每個 case 區塊通常以 break 陳述式結束,以確保僅執行符合條件的 case 下的程式碼。

比較 Switch 語句和 If-Else 語句

雖然 if-else 語句的結構涉及檢查條件並在條件為真時執行一段代碼,但 switch 語句則是將單一變數或表達式與多個可能的值進行比較。 當你有許多條件或案例模式需要檢查時,這使得 switch 語句更加簡潔且易於閱讀。

範例:使用 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
VB   C#

在此範例中,程式會印出「Three」作為輸出,因為數字符合case 3。

預設案例的角色

理解 Switch 區塊中的 Default

在 switch 陳述式中,default 案例扮演著關鍵角色。 它作為當指定的 case 標籤均不符合 switch 表達式的值時執行的保底選項。 雖然這是可選的,但包含預設情況是個好習慣,特別是用來處理意外或未知的值。

如何及何時使用預設陳述式

當沒有特定案例符合時,預設情況用於執行一段程式碼。 它確保 switch 語句無論輸入如何都具有明確的行為。 預設情況是使用 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
VB   C#

預設情況可以放置在 switch 區塊的任何位置,但通常為了可讀性會放在最後。

範例:具有預設案例的 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)
VB   C#

在這個例子中,如果 day 的值不是 1 到 7 之間,則執行預設情況,將 dayName 設為 "無效的天數"。

預設情況的最佳做法

始終包含一個預設值:即使您認為已經涵蓋了所有可能的情況,還是要包含一個預設情況來處理未預見的值。

有意義的行動:使用預設情況來執行有意義的行動,例如記錄錯誤、設定預設值或通知使用者未知的值。

進階交換功能

C# 中切換運算式的介紹

隨著 C# 的演進,引入了 switch 表達式作為處理多個條件分支的一種更簡潔和更具表現力的方法。 與傳統的 switch 語句不同,switch 表達式會返回一個值,更為精簡,這使它們成為現代 C# 編程中的強大工具。

切換表達式的語法

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
'};
VB   C#

底線(_)符號代表 switch 表達式中的預設情況,功能類似於傳統 switch 聲明中的 default 區塊。

範例:使用切換運算式

考慮一種情境,您需要對溫度讀數進行分類:

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)
VB   C#

在此範例中,switch 表達式簡潔地對溫度進行分類,default 案例(_)涵蓋任何未由其他情況匹配的情景。

使用 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"
'};
VB   C#

C# switch 陳述式與 switch 表達式比較

C# switch 陳述式:傳統上用於根據變數的值執行不同的代碼區塊。 每個案例都需要一個中斷語句。

Switch 表達式:在 C# 8.0 中引入,這提供了一種更簡潔的語法,通常用於根據條件返回值的情況。

將 Switch 語句與 IronPDF 在 C# 中整合

C# 案例陳述 (開發人員如何使用):圖 1 - 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
VB   C#

範例:使用 IronPDF 和 Switch 語句的條件浮水印

讓我們考慮一個場景:您有一個 PDF 文件,您想要根據頁數應用不同的浮水印根據文件中的頁數。 以下是您如何使用 IronPDF 結合 C# switch 語句來實現此功能的方法:

using IronPdf;
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;
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
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")
VB   C#

這是一頁的輸出PDF文件:

C# 案例陳述(開發人員如何使用):圖 2 - 輸出

結論

在本教程中,我們探討了 C# 中的 switch case 語句,這是一種編程中的決策方法。 我們首先了解了它的基礎結構,並將其與傳統的 if-else 語句進行比較,強調了它在可讀性和處理多個條件的簡潔性方面的優勢。

我們創建簡單的 switch 案例,處理各種情況與預設案例,並探索像 switch 表達式這樣的高級功能。 透過一個整合 IronPDF 用於動態 PDF 處理的例子,展示了 switch 語句在現實應用中的運用,展示了 switch 語句如何成為程式設計師工具箱中的寶貴資源。

IronPDF 提供一個免費試用以探索功能,讓您探索其功能和特性。 如需繼續使用並訪問其完整的工具套件,IronPDF 許可證的價格從 $749 開始,為您的所有 C# PDF 處理需求提供一個全面的解決方案。

< 上一頁
C# 隊列(開發人員如何工作)
下一個 >
C# 保護 (開發人員如何使用)

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

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