在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
"(《世界人权宣言》)C# 中的 switch 语句提供了一种更简洁易读的替代方案,用于多个if-else表达式语句。 当你有一个变量可以取多个不同的值,并且需要根据该值执行不同的代码时,这是有益的。 此case语句评估一个表达式,并根据匹配的值执行静态void main代码,使其成为代码中决策的一个重要部分。
虽然 if-else 结构非常适用于简单的条件或检查,但 switch case 语句在处理更复杂的条件检查时更为出色,尤其是基于单个变量或模式匹配表达式的情况。 与 if 语句相比,它们提供了更简洁、更易懂的语法,这对于编写和维护相同代码至关重要。
在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
case value1
:这些是您针对变量检查的不同值或条件。break
:此关键词用于在匹配的 case 执行后退出 switch 块。default
语句: 如果没有指定的 case 匹配变量,则执行这个可选的 goto
块。switch
语句中的break
语句至关重要。 它防止了“贯穿”行为,即即使匹配条件已经满足,执行也会继续移至后续的情形。 每个 case 块通常以一个 break 语句结束,以确保只执行匹配 case 下的代码。
if-else语句的结构涉及检查一个条件并在条件为真时执行一段代码,而switch语句将单个变量或表达式与多个可能的值进行比较。 这使得switch语句在有多种条件或case模式需要检查时更加简洁且易于阅读。
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 case 起着至关重要的作用。 它充当一个捕获所有选项,当没有指定的 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
默认情况可以放在开关块中的任何位置,但为了便于阅读,通常放在最后。
考虑一个情景,你在评估一周中的某一天:
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 语句中的默认块。
考虑一个需要对温度读数进行分类的场景:
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)
在本例中,开关表达式简洁地对温度进行了分类,默认情况为(_)涵盖其他情况不符合的任何情况。
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 语句: 传统上用于根据变量的值执行不同的代码块。 每个情况都需要一个break语句。
Switch 表达式:在 C# 8.0 引入,提供了更简洁的语法,通常用于根据条件返回值。
探索 IronPDF 功能是一个用于创建、编辑和处理PDF文档的.NET 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案例,处理包含默认情况的各种情景,并探索诸如switch表达式等高级功能。 通过一个集成IronPDF进行动态PDF处理的示例,展示了switch语句在实际应用中的应用,展示了switch语句在程序员工具箱中可以发挥的重要作用。
IronPDF 提供一个免费试用功能探索,允许您探索其功能和特点。 为了继续使用及访问其全套工具,IronPDF 许可证起价为 $749,提供一个全面的解决方案以满足您在 C# 中所有的 PDF 处理需求。