.NET 帮助

C# 案例语句(开发人员如何使用)

发布 2024年一月4日
分享:

"(《世界人权宣言》)C# 中的 switch 语句提供了一种更简洁易读的替代方案,用于多个if-else表达式语句。 当你有一个变量可以取多个不同的值,并且需要根据该值执行不同的代码时,这是有益的。 此case语句评估一个表达式,并根据匹配的值执行静态void main代码,使其成为代码中决策的一个重要部分。

虽然 if-else 结构非常适用于简单的条件或检查,但 switch case 语句在处理更复杂的条件检查时更为出色,尤其是基于单个变量或模式匹配表达式的情况。 与 if 语句相比,它们提供了更简洁、更易懂的语法,这对于编写和维护相同代码至关重要。

开关语句的基础知识

什么是 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 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
VB   C#
  • `开关(变量):这是您指定要评估的变量或表达式的位置,如上面的程序所示。
  • case value1:这些是您针对变量检查的不同值或条件。
  • break:此关键词用于在匹配的 case 执行后退出 switch 块。
  • default 语句: 如果没有指定的 case 匹配变量,则执行这个可选的 goto 块。

理解Break语句

switch语句中的break语句至关重要。 它防止了“贯穿”行为,即即使匹配条件已经满足,执行也会继续移至后续的情形。 每个 case 块通常以一个 break 语句结束,以确保只执行匹配 case 下的代码。

比较 Switch 语句和 If-Else 语句

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
VB   C#

在本例中,由于数字符合大小写 3,程序将打印 "Three "作为输出。

默认案件的作用

理解 Switch 语句中的默认情况

在 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
VB   C#

默认情况可以放在开关块中的任何位置,但为了便于阅读,通常放在最后。

示例:带有默认情况的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)
VB   C#

在本例中,如果 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
'};
VB   C#

下划线(_)符号代表 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)
VB   C#

在本例中,开关表达式简洁地对温度进行了分类,默认情况为(_)涵盖其他情况不符合的任何情况。

使用 Switch 表达式进行模式匹配

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"
'};
VB   C#

C# 交换语句与交换表达式

C# Switch 语句: 传统上用于根据变量的值执行不同的代码块。 每个情况都需要一个break语句。

Switch 表达式:在 C# 8.0 引入,提供了更简洁的语法,通常用于根据条件返回值。

在C#中使用IronPDF集成switch语句

C# 案例陈述(如何为开发人员工作):图 1 - IronPDF

探索 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
VB   C#

示例:使用IronPDF和Switch语句进行条件水印

让我们考虑一个场景,你有一个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")
VB   C#

这是输出的一页PDF文件:

C# 案例语句(开发人员如何使用):图 2 - 输出

结论

在本教程中,我们探讨了C#中的switch case语句,这是一种编程中的决策方式。 我们首先了解了它的基本结构,并与传统的if-else语句进行了比较,强调了它在可读性和处理多个条件方面的简洁性方面的优势。

我们创建简单的switch案例,处理包含默认情况的各种情景,并探索诸如switch表达式等高级功能。 通过一个集成IronPDF进行动态PDF处理的示例,展示了switch语句在实际应用中的应用,展示了switch语句在程序员工具箱中可以发挥的重要作用。

IronPDF 提供一个免费试用功能探索,允许您探索其功能和特点。 为了继续使用及访问其全套工具,IronPDF 许可证起价为 $749,提供一个全面的解决方案以满足您在 C# 中所有的 PDF 处理需求。

< 前一页
C# 队列(开发人员如何使用)
下一步 >
C# 受保护的(开发人员如何使用)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >