.NET ヘルプ

C# スイッチステートメント (開発者向けの仕組み)

公開済み 2023年12月12日
共有:

プログラミング言語の広大なランドスケープにおいて、コードの読みやすさと効率性を高めることは最も重要です。 強力なツールのアーセナルの中で、C# スイッチ文「際立って目立つ。」 この包括的なガイドでは、C#言語内でそれらの繊細な複雑さを探ります。 その多面的な用途について詳しく探り、実際のシナリオを通じてその実用的な応用を明らかにしますIronPDF.NET、Java、Python、またはNode.jsを含むプロジェクトに携わるソフトウェア開発者。 この旅の目的は、その仕組みを解明するだけでなく、C#開発のより広い展望の中でその重要性を強調することです。

1. スイッチ文の理解

C#のswitch文は、複数の条件を扱う際に開発者がよりクリーンで簡潔なコードを書くことができるようにする制御フロー文です。 特に、特定の変数の値に基づいて異なるアクションを実行したい場合に便利です。

これにより、キーワード/変数が中心的な焦点となる場合、if-else文に代わる完璧な選択肢となり、コードの可読性と維持能力が向上します。 入れ子構造になってコードが複雑になる可能性のあるif-else文とは異なり、switch文はより整理された代替手段を提供します。switch文は、変数の値によって異なるアクションを実行する必要がある場合に特に有効です。

では、switch文のコンテキストにおけるbreakの役割を詳しく見てみましょう。 C#において、breakステートメントは、switchブロック内の特定のケースに関連するコードブロックの実行を終了するために使用されます。 一致またはスイッチケースが一致し、そのケースに対応するコードブロックが実行されるとき、breakステートメントは、後続のケースが評価されるのを防ぐ上で重要です。 ステートメント内でフォールスルー動作を組み込みたい場合は、break の代わりに goto ステートメントを使用する必要があります。

以下は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.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#

私たちはswitch文の基礎を理解したので、次に、C#でIronPDFを使用して実際のシナリオにどのように適用できるかを見てみましょう。

3. C#でのIronPDFの紹介

IronPDFは、開発者が簡単にPDFドキュメントを生成および操作できる人気のあるC#ライブラリです。 それはPDFファイルの作成、編集、およびレンダリングに関する作業を簡素化します。 SwitchステートメントをIronPDFでどのように使用し、コーディングの機能性と構成性を高めることができるかを見てみましょう。

3.1. IronPDFを使用したスイッチ文の利用

文書管理システムに取り組んでいて、文書内容の使用ケースに基づいてさまざまなタイプのPDFを生成する必要があるとします。 以下は、IronPDFでswitchステートメントを活用する方法です:

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#プログラムは、ユーザー入力に基づいてPDFファイルを動的に生成するためにIronPDFライブラリを利用します。 ユーザーは 'I'(請求書)または 'R'(レポート)を入力するように促されます。 入力に応じて、プログラムはChromePdfRendererクラスを使用して対応するHTMLファイルをレンダリングします。(「請求書.html」(invoice.html) 報告用 または 「報告書.html」(report.html) 請求書用)PDF形式に変換。 生成されたPDFは、「Report.pdf」と「Invoice.pdf」の適切なファイル名で保存されます。このアプローチは、コンソールインターフェースを通じて特定の種類のPDFドキュメントを生成する柔軟でインタラクティブな方法を提供します。

3.2. レポートの例

次の例では、ユーザーからの入力を使ってレポートを作成します。

コンソール入力:

C# Switch文 (開発者向けの使用方法) 図1 - コンソールでのユーザー入力 (レポート)

出力PDF:

C#スイッチ文(開発者向けの動作) 図2 - 出力PDFレポート

3.3. 請求書の例

このケース文の例では、ユーザーからの入力とswitch文を使用してInvoiceを作成します。

コンソール入力:

C# スイッチステートメント(開発者向けの動作方法)図3 - コンソール内のユーザー入力(請求書)

出力PDF:

C# スイッチ文(開発者向けの仕組み) 図 4 - 出力 PDF(請求書)

結論

結論として、C#のswitch文は、従来のif-else文と比較して、複数の条件を処理するためのより整理された簡潔なアプローチを開発者に提供する堅牢な制御フローツールとして際立っています。 変数の値に基づいてコード実行を分類することで、switchステートメントは、コードの可読性と保守性の向上に貢献できます。

単純なスイッチ、パターンベースのスイッチブロック、特定のコーディングシナリオに対応するスイッチ式など、さまざまなタイプを通してswitch文の汎用性を示します。

IronPDFライブラリの統合は、ユーザー入力に基づいて動的PDFドキュメントを生成する際のswitch文の実用的な適用例を示しています。この機能が実際のシナリオでどのように活用され、C#コーディングの柔軟性と効率を向上させるかを明らかにしています。

以下の機能を探求するIronPDFHTMLからPDFへの変換についての詳細はIronPDF チュートリアル.

< 以前
Visual Studio Code C#(開発者向けの動作方法)
次へ >
Solid原則 C#(開発者にとっての仕組み)