C# Case Statement(開發者的工作原理)
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 Selectswitch (variable): 此處指定要評估的變數或表達式。case value1:這些是您針對變數檢查的不同值或條件。break:此關鍵字用於在執行匹配的情況後退出 switch 區塊。預設語句:如果指定的情況都不符合變數,則執行此區塊。
瞭解 Break 語句
開關中的 break 語句至關重要。 它可以防止 "fall through "行為,即即使已符合匹配條件,執行仍會移至後續情況。 每個 case 區塊通常以 break 語句結束,以確保只執行匹配 case 下的程式碼。
比較 Switch 語句和 If-Else 語句
if-else 語句的結構包含檢查一個條件,並在條件為真時執行一個程式碼區塊,而 switch 語句則是將單一變數或表達式與多個潛在值進行比較。 當您有許多條件或 case 模式需要檢查時,這會讓 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在此範例中,由於數字符合大小寫 3,因此程式會列印"Three"作為輸出。
預設案例的作用
了解開關區塊中的預設值
在 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預設情況可以放在切換區塊中的任何位置,但為了易讀性,通常會放在最後。
範例:具有預設 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)在此範例中,如果 day 的值不是 1 到 7,則會執行預設情況,將 dayName 設為"無效的日"。
預設案例的最佳實務
- Always Include a Default(永遠包含預設值):即使您認為自己已涵蓋所有可能的情況,也應包含預設值,以處理不可預見的值。
- 有意義的動作:使用預設情況執行有意義的動作,例如記錄錯誤、設定預設值或通知使用者未知值。
進階開關功能
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
'};下劃線 (_) 符號代表 switch 表達式中的預設情況,功能類似於傳統 switch 語句中的預設區塊。
範例:使用 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)在這個範例中,切換表達式簡潔地將溫度分類,預設情況 (_) 涵蓋其他情況無法匹配的任何情況。
使用 Switch Expressions 進行模式匹配
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"
'};C# Switch 語句 vs. Switch Expression
- C# Switch 語句:傳統上用於根據變量的值執行不同的程式碼區塊。 它要求為每個情況提供一個分斷語句。
- Switch Expression:在 C# 8.0 中引入,提供了更簡潔的語法,通常用於需要根據條件返回值的情況。
在 C# 中使用 IronPDF 整合 Switch 語句;。

Explore IronPDF Features 是一個 .NET PDF 函式庫,用於建立、編輯和處理 PDF 文件。 當與 C# 切換語句或表達式結合時,它會成為根據特定條件處理各種 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範例:使用 IronPDF 和 Switch 語句進行條件式水印。
讓我們考慮一個情況:您有一份 PDF 文件,您想要根據文件的頁數依頁數套用不同的水印。 以下是如何使用 IronPDF 結合 C# 切換語句來實現這一目標:
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以下是一頁的輸出 PDF 檔案:

結論
在本教程中,我們探討了 C# 中的 switch case 語句,這是程式設計中決策的基本形式。 我們從了解它的基本結構開始,並與傳統的 if-else 語句進行比較,強調它在可讀性和簡單處理多重條件方面的優勢。
我們建立了簡單的 switch case,使用預設 case 處理各種情況,並探討 switch 表達式等進階功能。 透過一個整合 IronPDF 進行動態 PDF 處理的範例,說明 switch 語句在現實世界中的應用,展示 switch 語句如何成為程式設計師工具包中的重要工具。
IronPdf 提供免費試用功能探索,讓您探索其特色和功能。 若要持續使用並存取其全套工具,IronPDF 授權起始價格極具競爭力,可為您的 C# PDF 處理需求提供全面的解決方案。
常見問題解答
如何在 C# 中使用切換語句來管理 PDF 處理?
您可以使用切換語句來管理 PDF 處理,方法是使用 IronPDF 之類的函式庫,根據條件(例如頁數或文件類型)執行不同的 PDF 作業。
C# 中的 switch 語句與 switch 表達式有何差異?
switch 語句提供了一種結構化的方式來處理多個條件,並使用 break 語句來防止掉線,而 switch 表達式則更為簡潔,會回傳一個值,並且不需要 break 語句。
為什麼 C# switch 語句中的預設 case 很重要?
預設大小寫至關重要,因為它能確保優雅地處理意外值,在沒有大小寫符合表達式時提供後備動作,防止出錯。
切換表達式如何增強 C# 程式碼的可讀性?
Switch 表達式透過為條件分支提供簡潔的語法來增強程式碼的可讀性,讓開發人員可以更精簡的形式來表達邏輯,使程式碼更容易理解和維護。
C# 應用程式中的錯誤處理可以使用 switch 語句嗎?
是的,switch 語句可以用於錯誤處理,根據錯誤代碼或條件將程式導向特定的錯誤處理例程,從而提高 C# 應用程式的穩健性。
在 IronPDF 中使用 switch 語句的實例是什麼?
一個實例是使用切換語句,根據 PDF 文件的頁數或其他條件,將不同的水印套用到 PDF 文件上,並利用 IronPDF 來完成 PDF 的操作任務。
IronPDF 如何促進基於切換器的 PDF 操作?
IronPDF 提供了一套強大的工具和方法,可以有條件地使用切換語句觸發 PDF 的轉換、編輯和渲染等任務,從而促進了基於切換的 PDF 操作。
在 PDF 處理中,switch 語句有哪些常見的使用情況?
常見用例包括根據文件元資料套用不同的處理規則,例如根據文件類型或內容套用特定格式或轉換。
IronPDF 如何協助使用 switch 語句建立可閱讀、可維護的程式碼?
IronPdf 提供全面的 PDF 操作方法,這些方法可以使用切換語句進行組織,由於其結構化的邏輯,因此編寫出的程式碼既具有可讀性,又具有可維護性。
在決策過程中,switch 語句比 if-else 區塊有哪些優勢?
與冗長的 if-else 鏈相比,Switch 語句提供了更有條理、更不易出錯的結構來處理多個離散條件,提高了程式碼的清晰度,並降低了出錯的可能性。







