.NET 帮助

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

发布 2024年一月4日
分享:

"(《世界人权宣言》) 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
VB   C#
  • switch (变量):此处指定要评估的变量或表达式,如上述程序所示。
  • case value1:这是您针对变量检查的不同值或条件。
  • break:一旦执行了匹配的 case,该关键字用于退出开关块。
  • 默认语句:如果没有指定的情况与变量匹配,则执行这个可选的 goto 块。

Understanding the Break Statement

switch 中的 break 语句至关重要。它可以防止出现 "穿帮 "行为,即即使匹配条件已经满足,仍会执行到下一个 case。每个案例块通常都以断开语句结束,以确保只执行匹配案例下的代码。

Switch 语句与 If-Else 语句的比较

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

在本例中,由于数字符合大小写 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
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&num 中的开关表达式简介;

随着 C# 的发展,开关表达式作为处理多个条件分支的一种更简洁、更具表现力的方式被引入。与传统的 switch 语句不同,switch 表达式会返回一个值,而且更加简洁,是现代 C# 编程的有力工具。

Switch 表达式的语法

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

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

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

使用开关表达式进行模式匹配

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

C# Switch 语句与 Switch 表达式对比

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

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

在 C&num 中将 Switch 语句与 IronPDF 整合;

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

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

示例:使用 IronPDF 和 Switch 语句创建条件水印

让我们考虑这样一种情况:您有一份 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")
VB   C#

下面是输出的一页 PDF 文件:

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

结论

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

我们创建了简单的开关情况,使用默认情况处理各种情况,并探索了开关表达式等高级功能。通过集成 IronPDF 进行动态 PDF 处理的示例演示了开关语句在现实世界中的应用,展示了开关语句在程序员工具包中的价值。

IronPDF 提供了 免费试用,让您可以探索其特性和功能。如需继续使用并访问其全套工具,IronPDF 许可证的起价为 $749,可为您的 C# PDF 处理需求提供全面的解决方案。

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

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

免费NuGet下载 总下载量: 10,746,704 查看许可证 >