.NET 帮助

C# Switch 语句(开发者如何使用)

发布 2023年十二月12日
分享:

在浩如烟海的编程语言中,提高代码的可读性和效率至关重要,而 C# 语言则是其中的佼佼者,因为它提供了多种多样的结构来满足您的编码需求。 在其强大的工具库中,"C# 开关语句其中"...... "最为突出。 本综合指南将探讨它们在 C# 语言中的细微奥妙。 我们将深入探讨其多方面的用途,并通过现实世界中涉及以下内容的场景来阐明其实际应用IronPDFPDF 生成的通用 C# 库。 此行的目的不仅在于揭开其机理,还在于强调其在 C# 开发的大环境中的意义。

1.理解开关声明

C# 中的 switch 语句是一种控制流语句,允许开发人员在处理多个条件时编写更简洁的代码。 当您想根据特定变量的值执行不同的操作时,它尤其有用。

当关键字/变量是核心重点时,这使它成为 if-else 语句的完美替代品,因为它提高了代码的可读性和维护能力。 if-else 语句可能会导致嵌套结构和潜在的代码复杂性,而 switch 语句则不同,它提供了一种更有条理的选择。在处理需要根据变量值触发不同操作的变量时,switch 语句尤其有用。

现在,让我们来仔细看看断开在切换语句中的作用。 在 C# 中,break 语句用于终止执行与开关块内特定情况相关的代码块。 当匹配或切换情况匹配,且该情况对应的代码块被执行时,break语句对于防止后续情况被评估至关重要。 如果您希望在语句中加入 fall-through 行为,则应使用 goto 语句而不是 break

下面是 C# 中 switch 语句的基本结构:

switch (variable)
{
    case a:
        // Code to be executed if variable equals value1
        break;
    case c:
        // Code to be executed if variable equals value2
        break;
    // More cases can be added as needed
    default:
        // Default Case to be executed if none of the cases match
        break;
}
switch (variable)
{
    case a:
        // Code to be executed if variable equals value1
        break;
    case c:
        // Code to be executed if variable equals value2
        break;
    // More cases can be added as needed
    default:
        // Default Case to be executed if none of the cases match
        break;
}
Select Case variable
	Case a
		' Code to be executed if variable equals value1
	Case c
		' Code to be executed if variable equals value2
	' More cases can be added as needed
	Case Else
		' Default Case to be executed if none of the cases match
End Select
VB   C#

现在,让我们来探讨一下开关语句的不同类型及其使用案例。

2.开关语句的类型及其用途

2.1.简单的开关语句

这是切换语句的最基本形式。 它将变量与常量值进行比较,并执行与第一个匹配值或情况相关的代码块。 如果未找到匹配项,则执行默认代码块。

int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // More cases...
    default:
        Console.WriteLine("Invalid day");
        break;
}
int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // More cases...
    default:
        Console.WriteLine("Invalid day");
        break;
}
Dim day As Integer = 3
Select Case day
	Case 1
		Console.WriteLine("Monday")
	Case 2
		Console.WriteLine("Tuesday")
	' More cases...
	Case Else
		Console.WriteLine("Invalid day")
End Select
VB   C#

2.2.带模式的 Switch 语句(C# 7.0 及更高版本)

C# 7.0 引入了大小写模式匹配,使得开关语句更具表现力和灵活性。 模式匹配表达式可以包括类型模式、属性模式等,使代码更具可读性。

object obj = "Hello";
switch (obj)
{
    case string s:
        Console.WriteLine($"String of length {s.Length}");
        break;
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    // More cases...
    default:
        Console.WriteLine("Other type");
        break;
}
object obj = "Hello";
switch (obj)
{
    case string s:
        Console.WriteLine($"String of length {s.Length}");
        break;
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    // More cases...
    default:
        Console.WriteLine("Other type");
        break;
}
Dim obj As Object = "Hello"
Select Case obj
'INSTANT VB TODO TASK: The following 'case' pattern variable is not converted by Instant VB:
'ORIGINAL LINE: case string s:
	Case String s
		Console.WriteLine($"String of length {s.Length}")
'INSTANT VB TODO TASK: The following 'case' pattern variable is not converted by Instant VB:
'ORIGINAL LINE: case int i:
	Case Integer i
		Console.WriteLine($"Integer: {i}")
	' More cases...
	Case Else
		Console.WriteLine("Other type")
End Select
VB   C#

2.3.Switch Expression(C# 8.0 及更高版本)

在 C# 8.0 中,引入了一种新的、更简洁的 switch 语句形式,即 switch 表达式。 它们可用于需要恒定表达值的地方,使代码更简短、更优雅。

int day = 2;
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    // More cases...
    _ => "Invalid day"
};
Console.WriteLine(result);
int day = 2;
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    // More cases...
    _ => "Invalid day"
};
Console.WriteLine(result);
Dim day As Integer = 2
Dim tempVar As String
Select Case day
	Case 1
		tempVar = "Monday"
	Case 2
		tempVar = "Tuesday"
	' More cases...
	Case Else
		tempVar = "Invalid day"
End Select
Dim result As String = tempVar
Console.WriteLine(result)
VB   C#

既然我们已经对开关语句有了扎实的了解,那就让我们看看如何在实际场景中使用 C# 中的 IronPDF 来应用它们。

3. 在C#中介绍IronPDF

IronPDF是一个流行的 C# 库,允许开发人员轻松生成和处理 PDF 文档。 它简化了与 PDF 文件创建、编辑和渲染相关的任务。 让我们来探讨一下如何利用 IronPdf 的切换语句来增强编码的功能和组织性。

3.1.使用 IronPdf 的 Switch 语句

假设您正在开发一个文档管理系统,需要根据文档内容的使用情况生成不同类型的 PDF。 以下是如何利用 IronPDF 的切换语句:

using IronPdf;
using System;
class generatePDF {
    public static void Main(String [] args)
    {
        var renderer = new ChromePdfRenderer();
        string mystring = null;
        Console.WriteLine("Enter your input : ");
        Console.WriteLine("Enter 'I' for Invoice");
        Console.WriteLine("Enter 'R' for Report");
        mystring = Console.ReadLine();
        switch (mystring)
        {
            case "R":
                var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
                pdf.SaveAs("Report.pdf");
                break;
            case "I":
                var pdfi = renderer.RenderHtmlFileAsPdf("report.html");
                pdfi.SaveAs("Invoice.pdf");
                break;
        }
    }
}
using IronPdf;
using System;
class generatePDF {
    public static void Main(String [] args)
    {
        var renderer = new ChromePdfRenderer();
        string mystring = null;
        Console.WriteLine("Enter your input : ");
        Console.WriteLine("Enter 'I' for Invoice");
        Console.WriteLine("Enter 'R' for Report");
        mystring = Console.ReadLine();
        switch (mystring)
        {
            case "R":
                var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
                pdf.SaveAs("Report.pdf");
                break;
            case "I":
                var pdfi = renderer.RenderHtmlFileAsPdf("report.html");
                pdfi.SaveAs("Invoice.pdf");
                break;
        }
    }
}
Imports IronPdf
Imports System
Friend Class generatePDF
	Public Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		Dim mystring As String = Nothing
		Console.WriteLine("Enter your input : ")
		Console.WriteLine("Enter 'I' for Invoice")
		Console.WriteLine("Enter 'R' for Report")
		mystring = Console.ReadLine()
		Select Case mystring
			Case "R"
				Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")
				pdf.SaveAs("Report.pdf")
			Case "I"
				Dim pdfi = renderer.RenderHtmlFileAsPdf("report.html")
				pdfi.SaveAs("Invoice.pdf")
		End Select
	End Sub
End Class
VB   C#

该 C# 程序利用 IronPDF 库根据用户输入动态生成 PDF 文件。 提示用户输入 "I "表示 Invoice 或 "R "表示 Report。 根据输入内容,程序使用 ChromePdfRenderer 类渲染相应的 HTML 文件(报告为 "invoice.html",发票为 "report.html")翻译成 PDF 格式。 生成的 PDF 会以适当的文件名保存,报告为 "Report.pdf",发票为 "Invoice.pdf"。这种方法提供了一种通过控制台界面生成特定类型 PDF 文档的灵活互动方式。

3.2.报告示例

在下面的示例中,我们将利用用户的输入创建一份报告。

控制台输入:

C# 开关语句(开发人员如何使用) 图 1 - 控制台中的用户输入(报告)

输出 PDF:

C# 开关语句(开发人员如何使用) 图 2 - 输出 PDF 报告

3.3.发票示例

在本案例语句示例中,我们将使用用户输入和开关语句创建一张发票。

控制台输入:

C# 交换语句(开发人员如何使用) 图 3 - 控制台中的用户输入(发票)

输出 PDF:

C# 交换声明(开发人员如何使用) 图 4 - 输出 PDF(发票)

结论

总之,C# switch 语句作为一种强大的控制流工具脱颖而出,与传统的 if-else 语句相比,它为开发人员提供了一种更有条理、更简洁的方法来处理多个条件。 通过根据变量值对代码执行进行分类,开关语句可以通过提高可读性和可维护性来改进您的编码。

通过各种类型的开关语句,包括简单开关、基于模式的开关块和开关表达式,展示了开关语句的多功能性,每种类型都能满足特定的编码场景。

IronPdf 库的集成例证了开关语句在根据用户输入生成动态 PDF 文档中的实际应用,并展示了如何在实际场景中利用这一功能来提高 C# 编码的灵活性和效率。

探索IronPDF如需了解 HTML 至 PDF 转换的更多信息,请访问IronPDF 教程.

< 前一页
Visual Studio Code C#(开发者的工作原理)
下一步 >
C#中的SOLID原则(它如何为开发人员工作)

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

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