.NET ヘルプ

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

更新済み 12月 12, 2023
共有:

プログラミング言語の広大な分野において、コードの可読性と効率性を向上させることは非常に重要です。その中でC#言語は、多様な構造を提供し、コーディングのニーズに応える確固たる存在として立っています。 強力なツールのアーセナルの中で、C# スイッチ文「際立って目立つ。」 この包括的なガイドでは、C#言語内でそれらの繊細な複雑さを探ります。 その多面的な用途について詳しく探り、実際のシナリオを通じてその実用的な応用を明らかにします IronPDF. この旅の目的は、そのメカニズムを解明するだけでなく、C#開発の広範な分野におけるその重要性を強調することでもあります。

1. スイッチ文の理解

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

これにより、キーワードや変数が中心となる場合にif-else文の優れた代替案となり、コードの可読性および保守性が向上します。 if-else文とは異なり、入れ子構造や潜在的なコードの複雑さを引き起こす可能性がある中で、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. スイッチ式 (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ファイルの作成、編集、およびレンダリングに関する作業を簡素化します。 では、コードの機能性と組織化を向上させるために、IronPDFとswitch文の使用方法を見ていきましょう。

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. 請求書の例

このケース文の例では、ユーザーからの入力を使用して請求書を作成し、スイッチ文を使用します。

コンソール入力:

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

出力PDF:

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

結論

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

スイッチステートメントの多様性は、さまざまなタイプを通じて示されています。これには、簡単なスイッチ、パターンベースのスイッチブロック、スイッチ、およびスイッチ式が含まれ、それぞれ特定のコーディングシナリオに対応しています。

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

IronPDFその機能をテストできるように、HTMLからPDFへの変換について詳しく知るには、以下をご覧ください。 リンク.

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

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >