在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
這 C# 中的 switch 語句 提供了一種更簡潔且易讀的替代方案,用於多個 if-else 表達式語句。當您有一個變數可以取幾個不同的值,並且需要根據這些不同的值執行不同的代碼時,這是很有幫助的。這個 case 語句會評估一個表達式,並根據匹配的值執行靜態 void main 代碼,從而在您的代碼決策中成為一個不可或缺的部分。
雖然 if-else 結構對於簡單的條件或檢查很有用,但當處理更複雜的條件檢查時,尤其是基於單個變數或模式匹配表達式的條件檢查時,switch case 語句更加出色。它們提供了更清晰且易於理解的語法,相比分支語句時這對於編寫和維護相同的代碼至關重要。
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
switch (變數)
:這裡是指定要評估的變量或表達式,如上所示。情況值1
:這些是與變數對比檢查的不同取值或條件。break
:這個關鍵字在匹配的情況被執行後退出switch塊。default
語句:如果沒有一個指定的情況匹配變量,這個可選的goto
塊會執行。在 switch 中,break 語句是至關重要的。它可以防止 "貫穿" 行為,即即便匹配的條件已經滿足了,執行依然會移至後續的 case。每個 case 區塊通常都以 break 語句結束,以確保僅執行匹配條件下的代碼。
雖然 if-else 陳述式的結構包括檢查條件並在條件為真時執行一段代碼,但 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
在此範例中,程式會印出「Three」作為輸出,因為數字符合case 3。
在 switch 語句中,默認情況扮演著至關重要的角色。它作為一個全包選擇,當沒有一個指定的 case 標籤與 switch 表達式的值匹配時,會執行這個情況。雖然它是可選的,但包含默認情況是一種良好的做法,特別是用於處理意外或未知的值。
default
陳述式default
案例在其他具體案例不匹配時會執行一段程式碼。這確保了無論輸入為何,switch
陳述式總是具有明確的行為。default
案例使用 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
預設情況可以放置在 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 表達式被引入,這是一種處理多條件分支更加簡潔和富有表現力的方式。與傳統的 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 聲明中的 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)
在此範例中,switch 表達式簡潔地對溫度進行分類,default 案例 (_) 涵蓋任何未由其他情況匹配的情景。
C# 中的切換表達式允許進行模式匹配,這使得它們更加多功能。您可以匹配類型、值,甚至是模式:
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 Statement:傳統上用於根據變量的值執行不同的代碼塊。每個案例都需要一個break語句。
Switch Expression:在C# 8.0中引入,這提供了更簡潔的語法,通常用於根據條件返回一個值。
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
假設有一個 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")
這是單頁輸出 PDF 檔案:
在本教程中,我們探討了C#中的 switch case 語句,這是一種編程中的決策方式。我們從理解其基本結構開始,並與傳統的 if-else 語句進行比較,突顯其在可讀性和處理多個條件的簡便性方面的優勢。
我們創建了簡單的 switch case,處理了包含 default case 的各種場景,並探索了像 switch expressions 這樣的高級功能。通過一個示例展示了如何將 switch 語句應用於真實世界中動態PDF處理的集成,展示了 switch 語句在程序員工具箱中的價值。
IronPDF 提供了 免費試用,讓您探索其功能和特性。若要繼續使用並訪問其完整工具套件,IronPDF 授權從 $749 起提供,為您在 C# 中的所有 PDF 處理需求提供全面解決方案。