C# パターン マッチング
データまたはオブジェクトの一致に使用される 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); } } } }
出力:
説明: 上記のプログラムでは、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); } } } }
出力:
説明: 上記のプログラムでは、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; } } }
出力:
説明: 上記のプログラムでは、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 { } } } }
出力:
説明: 上記のプログラムでは、check というクラスが定義されています。次に main メソッドが呼び出され、アルファベット A から Z までの文字列がユーザーからの入力として期待されます。次に、switch ステートメントを使用して、ユーザーが提供した入力を解析し、それに応じて出力を表示します。入力が A と B 以外のアルファベットの場合、出力にも同じものが表示されます。上記のプログラムの出力は、上のスナップショットに示されています。
結論
このチュートリアルでは、例とその出力を通じたパターン マッチングの定義と方法を通じて、C# のパターン マッチングの概念を理解します。
おすすめ記事
これは C# パターン マッチングのガイドです。ここでは、C# パターン マッチングの概要とその方法、およびその例とコード実装について説明します。詳細については、他の推奨記事を参照することもできます –
- C# の乱数ジェネレーター
- Java の静的コンストラクター
- C# の TextWriter
- C# の静的コンストラクター
以上がC# パターン マッチングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

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

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

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

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

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

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

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

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