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 Select
switch (variable):這指定要計算的變數或表達式。case value1:這些是你要針對變數檢查的不同值或條件。break:此關鍵字用於執行符合的 case 後退出 switch 區塊。default語句:如果沒有指定的任何情況與變數匹配,則執行此程式碼區塊。
瞭解 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 設為"無效日期"。
預設案例的最佳實務
-始終包含預設值:即使您認為已經涵蓋了所有可能的情況,也應包含一個預設值來處理未預見的值。 -有意義的操作:使用預設執行有意義的操作,例如記錄錯誤、設定預設值或通知使用者未知值。
進階開關功能
C# Switch 表達式簡介
隨著 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 表達式:在 C# 8.0 中引入,它提供了一種更簡潔的語法,通常用於根據條件傳回值的情況。
在 C# 中整合 Switch 語句與 IronPDF

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 處理需求提供全面的解決方案。
常見問題解答
如何使用 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 鏈相比。



