目次
C# パターン マッチングの方法
1.式
例 #2
2. Switch ステートメント
結論
おすすめ記事

C# パターン マッチング

Sep 03, 2024 pm 03:32 PM
c# c# tutorial

データまたはオブジェクトの一致に使用される C# の機能はパターン マッチングと呼ばれ、このパターン マッチングは is 式と switch ステートメントを使用して実行されます。is 式は、データまたはオブジェクトに指定された型との互換性があるかどうかをチェックします。 not および switch ステートメントは、C# のさまざまなパターンと一致させるために使用されます。 C# のパターン マッチングに is ステートメントと switch ステートメントを使用することで、アプリケーションの記述方法を、より読みやすく、保守しやすく、理解しやすいものに変更できます。

C# パターン マッチングの方法

C# のパターン マッチングには 2 つの方法があります。それらは次のとおりです:

1.式

です

is 式は、データまたはオブジェクトと指定された型との互換性をチェックするために使用されます。

例 #1

デモする C# プログラムはプログラム内の式です。

コード:

using System;
//a namespace called program is defined
namespace program
{
//a class called subject is defined in which a subject is assigned to a string variable
class Subject
{
public string SubName{ get; set; } = "C Sharp";
}
//a class called check is defined
class check
{
//main method is called
public static void Main(string[] args)
{
//an instance of the subject class is created
Subject sub = new Subject();
//is expression is used to check if the instance of the subject class is compatible with the type of the value assigned to the string variable in subject class
if(sub is Subject)
{
Console.WriteLine(sub.SubName);
}
}
}
}

出力:

C# パターン マッチング

説明: 上記のプログラムでは、program という名前空間が定義されています。次に、Subject というクラスが定義され、サブジェクト名が文字列変数に割り当てられます。次に、check というクラスが定義され、その中で main メソッドが呼び出されます。次に、サブジェクト クラスのインスタンスが作成されます。次に、式を使用して、サブジェクト クラスの新しく作成されたインスタンスが、サブジェクト クラスの文字列変数に割り当てられた値の型と互換性があるかどうかを確認します。互換性がある場合、サブジェクト名が出力として表示されます。プログラムの出力は上のスナップショットに示されています。

例 #2

デモする C# プログラムはプログラム内の式です。

コード:

using System;
//a namespace called program is defined
namespace program
{
//a class called Writer is defined in which a name of the writer is assigned to a string variable
class Writer
{
public string WriterName{ get; set; } = "ShobhaShivakumar";
}
//a class called check is defined
class check
{
//main method is called
public static void Main(string[] args)
{
//an instance of the Writer class is created
Writer write = new Writer();
//is expression is used to check if the instance of the Writer class is compatible with the type of the value assigned to the string variable in Writer class
if(write is Writer)
{
Console.WriteLine(write.WriterName);
}
}
}
}

出力:

C# パターン マッチング

説明: 上記のプログラムでは、program という名前空間が定義されています。次に、ライターという名前のクラスが定義され、ライターの名前が文字列変数に割り当てられます。次に、check というクラスが定義され、その中で main メソッドが呼び出されます。次に、Writer クラスのインスタンスが作成されます。次に、式を使用して、新しく作成された Writer クラスのインスタンスが Writer クラスの文字列変数に割り当てられた値の型と互換性があるかどうかを確認します。互換性がある場合は、作成者の名前が出力として表示されます。プログラムの出力は上のスナップショットに示されています。

2. Switch ステートメント

switch ステートメントは、C# のさまざまなパターンと一致するために使用されます。

例 #1

プログラム内の switch ステートメントをデモするための C# プログラム。

コード:

using System;
//a class called check is defined
class check
{
//main method is called
public static void Main()
{
//a name is assigned to a string variable
string val = "Shobha_Shivakumar";
//switch statement is used to switch between the values that is assigned to the string variable and anything else
switch (val)
{
case "Shobha_Shivakumar":
Console.WriteLine("The assigned value is Shobha_Shivakumar");
break;
case "not_assigned":
Console.WriteLine("The assigned value is not_assigned");
break;
}
}
}

出力:

C# パターン マッチング

説明: 上記のプログラムでは、check というクラスが定義されています。次に main メソッドが呼び出され、文字列変数に名前が割り当てられます。次に、switch ステートメントを使用して、文字列変数に割り当てられる値とそれ以外の値を切り替えます。文字列変数に割り当てられた名前が switch case の場合、対応する出力が表示されます。同様に、それ以外の場合は、対応する出力が表示されます。プログラムの出力は、上のスナップショットに示されているとおりです。

例 #2

プログラム内の switch ステートメントをデモするための C# プログラム:

コード:

using System;
//a class check is defined
class Check
{
//main method is called
static void Main()
{
while(true)
{
Console.WriteLine("Type any alphabet between A and Z");
try
{
//a string is expected as the input by the user
string r = Console.ReadLine();
//switch statement is used to parse the input given by the user and display the output accordingly
switch(r)
{
case "A":
{
Console.WriteLine("This is Alphabet A");
break;
}
case "B":
{
Console.WriteLine("This is alphabet B");
break;
}
default:
{
Console.WriteLine("This is something other than Alphabets A and B");
break;
}
}
}
catch
{
}
}
}
}

出力:

C# パターン マッチング

説明: 上記のプログラムでは、check というクラスが定義されています。次に main メソッドが呼び出され、アルファベット A から Z までの文字列がユーザーからの入力として期待されます。次に、switch ステートメントを使用して、ユーザーが提供した入力を解析し、それに応じて出力を表示します。入力が A と B 以外のアルファベットの場合、出力にも同じものが表示されます。上記のプログラムの出力は、上のスナップショットに示されています。

結論

このチュートリアルでは、例とその出力を通じたパターン マッチングの定義と方法を通じて、C# のパターン マッチングの概念を理解します。

おすすめ記事

これは C# パターン マッチングのガイドです。ここでは、C# パターン マッチングの概要とその方法、およびその例とコード実装について説明します。詳細については、他の推奨記事を参照することもできます –

  1. C# の乱数ジェネレーター
  2. Java の静的コンストラクター
  3. C# の TextWriter
  4. C# の静的コンストラクター

以上がC# パターン マッチングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

ユニティゲーム開発:C#は3D物理エンジンとAIの動作ツリーを実装しています ユニティゲーム開発:C#は3D物理エンジンとAIの動作ツリーを実装しています May 16, 2025 pm 02:09 PM

Unityでは、3D物理エンジンとAIの動作ツリーをC#を通じて実装できます。 1. rigidbodyコンポーネントとaddforceメソッドを使用して、スクロールボールを作成します。 2。動作を通じて、パトロールやChaseplayerなどのツリーノードを介して、AIキャラクターはプレーヤーをパトロールして追いかけるように設計できます。

C#.NET開発者のコ​​ミュニティ:リソースとサポート C#.NET開発者のコ​​ミュニティ:リソースとサポート May 06, 2025 am 12:11 AM

C#.NET開発者コミュニティは、次のような豊富なリソースとサポートを提供します。1。Microsoftの公式文書、2。StackoverflowやRedditなどのコミュニティフォーラム、3。Githubのオープンソースプロジェクト。これらのリソースは、開発者が基本的な学習から高度なアプリケーションまでプログラミングスキルを向上させるのに役立ちます。

C#およびC:さまざまなパラダイムの探索 C#およびC:さまざまなパラダイムの探索 May 08, 2025 am 12:06 AM

C#とCの主な違いは、メモリ管理、多型の実装、パフォーマンスの最適化です。 1)C#はゴミコレクターを使用してメモリを自動的に管理し、Cは手動で管理する必要があります。 2)C#は、インターフェイスと仮想方法を介して多型を実現し、Cは仮想関数と純粋な仮想関数を使用します。 3)C#のパフォーマンスの最適化は、構造と並列プログラミングに依存しますが、Cはインライン関数とマルチスレッドを通じて実装されます。

C#は例外をどのように処理しますか?また、トライキャッチ式ブロックのベストプラクティスは何ですか? C#は例外をどのように処理しますか?また、トライキャッチ式ブロックのベストプラクティスは何ですか? Jun 10, 2025 am 12:15 AM

C#は、試行、キャッチ、最後にブロックすることにより、構造化された例外処理メカニズムを実装します。開発者は、可能なエラーコードをTryブロックに配置し、特定の例外(IOException、sqlexceptionなど)をキャッチブロックにキャッチし、最終的なブロックでリソースクリーニングを実行します。 1.深刻なエラーを隠し、デバッグ効率を改善することを避けるために、一般的な例外(例外など)の代わりに特定の例外をキャッチする必要があります。 2。パフォーマンスクリティカルコードで過剰使用のトライキャッチを避けてください。事前に条件を確認したり、代わりにTryParseなどの方法を使用したりすることをお勧めします。 3.常に最終的にブロックされるか、ステートメントを使用して、ファイル、接続などが正しく閉じられていることを確認してください。

C#.NET現代世界:アプリケーションと産業 C#.NET現代世界:アプリケーションと産業 May 08, 2025 am 12:08 AM

C#.NETは、ゲーム開発、金融サービス、モノのインターネット、クラウドコンピューティングの分野で現代世界で広く使用されています。 1)ゲーム開発では、C#を使用してUnityエンジンを介してプログラムします。 2)金融サービスの分野では、C#.NETが高性能取引システムとデータ分析ツールの開発に使用されます。 3)IoTおよびクラウドコンピューティングに関して、C#.NETはAzure Servicesを通じてサポートを提供して、デバイス制御ロジックとデータ処理を開発します。

C#コードの実行における共通言語ランタイム(CLR)の役割は何ですか? C#コードの実行における共通言語ランタイム(CLR)の役割は何ですか? Jun 09, 2025 am 12:15 AM

CLRは、コード実行、メモリ管理、セキュリティ、例外処理を担当するC#コードを実行するランタイムエンジンです。そのワークフローは次のとおりです。1。C#ソースコードは、最初に中間言語(IL)にコンパイルされます。 3. CLRは、Garbage Collector(GC)を介してメモリを自動的に管理し、オブジェクトメモリを割り当て、フリーし、ファイナライザーの使用をサポートし、ステートメントを使用して管理されていないリソースを処理します。 4. CLR力の安全性のタイプ、ILコードを検証して一般的なエラーを防止し、必要に応じて安全でないコードブロックを許可します。 5。例外処理はCLRによって均一に管理され、トライカッチ式構造を採用します

C#のtask.runとtask.factory.startnewの違いは何ですか? C#のtask.runとtask.factory.startnewの違いは何ですか? Jun 11, 2025 am 12:01 AM

C#では、task.runは単純な非同期操作により適していますが、task.factory.startnewは、タスクスケジューリングを細かく制御する必要があるシナリオに適しています。 task.runは、バックグラウンドスレッドの使用を簡素化し、デフォルトでスレッドプールを使用し、CPU集約型タスクの「送信と忘却」に適したコンテキストをキャプチャしません。一方、task.factory.startnewは、タスクスケジューラーの指定、トークンのキャンセル、タスク作成オプションなど、より多くのオプションを提供します。これは、複雑な並列処理またはカスタムスケジューリングが必要なシナリオに使用できます。 2つの動作の違いは、タスクの継続とサブタスクの動作に影響する可能性があるため、実際のニーズに応じて適切な方法を選択する必要があります。

C#.NETで開発:実用的なガイドと例 C#.NETで開発:実用的なガイドと例 May 12, 2025 am 12:16 AM

C#と.NETは、強力な機能と効率的な開発環境を提供します。 1)C#は、CのパワーとJavaのシンプルさを組み合わせた最新のオブジェクト指向プログラミング言語です。 2).NETフレームワークは、複数のプログラミング言語をサポートするアプリケーションを構築および実行するためのプラットフォームです。 3)C#のクラスとオブジェクトは、オブジェクト指向プログラミングの中核です。クラスはデータと動作を定義し、オブジェクトはクラスのインスタンスです。 4).NETのゴミ収集メカニズムは、開発者の作業を簡素化するためにメモリを自動的に管理します。 5)C#および.NETは、同期および非同期プログラミングをサポートする強力なファイル操作関数を提供します。 6)一般的なエラーは、デバッガー、ロギング、例外処理を通じて解決できます。 7)パフォーマンスの最適化とベストプラクティスには、StringBuildの使用が含まれます

See all articles