在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
"(《世界人权宣言》) C# 中的 switch 语句 为多个 if-else 表达式语句提供了一个更精简、更易读的替代方案。当一个变量可以取多个不同值中的一个,而你需要根据该值执行不同的代码时,它就很有用了。这种 case 语句会对表达式进行评估,并根据匹配值执行静态 void main 代码,使其成为代码中决策不可或缺的一部分。
if-else 结构适用于简单的条件或检查,而 switch case 语句则适用于更复杂的条件检查,尤其是基于单一变量或模式匹配表达式的检查。与 if 语句相比,它们提供了更简洁、更易懂的语法,这对于编写和维护相同的代码至关重要。
C# 中的切换语句是一种控制结构,用于从众多代码路径中选择一条执行。选择的依据是值或具有任意数据类型的表达式。它是使用多个 if-else 条件的一种高效替代方法,尤其是在处理可能有多个不同值的变量时。
开关语句的基本语法简单明了:
//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 (变量)
:此处指定要评估的变量或表达式,如上述程序所示。case value1
:这是您针对变量检查的不同值或条件。break
:一旦执行了匹配的 case,该关键字用于退出开关块。默认
语句:如果没有指定的情况与变量匹配,则执行这个可选的 goto
块。switch 中的 break 语句至关重要。它可以防止出现 "穿帮 "行为,即即使匹配条件已经满足,仍会执行到下一个 case。每个案例块通常都以断开语句结束,以确保只执行匹配案例下的代码。
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
在本例中,由于数字符合大小写 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
默认情况可以放在开关块中的任何位置,但为了便于阅读,通常放在最后。
假设您正在评估一周中的某一天:
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 表达式会返回一个值,而且更加简洁,是现代 C# 编程的有力工具。
C# 中开关表达式的语法是 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# 中的开关表达式允许模式匹配,使其用途更加广泛。您可以匹配类型、值甚至模式:
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 语句。
切换表达式:在 C# 8.0 中引入,提供了更简洁的语法,通常用于需要根据条件返回值的情况。
IronPDF 是一个用于创建、编辑和处理PDF文档的.NET PDF库。当与C# switch语句或表达式结合使用时,它成为根据特定条件处理各种PDF相关操作的强大工具。这种集成对于需要基于PDF内容或元数据进行决策的任务特别有用。
IronPDF的关键功能是转换 HTML 转 PDF同时保持布局和样式。这非常适合从网络内容(包括报告、发票和文档)创建PDF。HTML文件、URLs和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# 开关语句来实现这一功能:
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 语句进行了比较,突出了它在可读性和处理多个条件的简便性方面的优势。
我们创建了简单的开关情况,使用默认情况处理各种情况,并探索了开关表达式等高级功能。通过集成 IronPDF 进行动态 PDF 处理的示例演示了开关语句在现实世界中的应用,展示了开关语句在程序员工具包中的价值。
IronPDF 提供了 免费试用,让您可以探索其特性和功能。如需继续使用并访问其全套工具,IronPDF 许可证的起价为 $749,可为您的 C# PDF 处理需求提供全面的解决方案。