C#でパターンマッチングを使用する方法は?
C#のパターンマッチングは、パターンに対してオブジェクトを確認し、情報を簡潔に抽出するために使用される機能です。 1.タイプパターンは、if(value is string str)で示されるように、1つのステップでチェックとキャストを許可します。 2。定数を直接比較する定数を直接比較します。 3.パターンのスイッチ式は、形状の種類に基づいてさまざまな文字列を返す形状スイッチによって実証されたロジックを簡素化します。 4。チェック担当者のように、再帰パターンはネストされた構造に一致します{name: "Alice"、address:{city: "Wonderland"}}。全体として、パターンマッチングは、適切に使用するとコードの読みやすさと表現力を向上させます。
C#のパターンマッチングは、パターンに対してオブジェクトをチェックし、簡潔で読みやすい方法で情報を抽出できる強力な機能です。さまざまなタイプ、条件、または構造を使用する場合に特に便利です。

C#コードでパターンマッチングを使用できるいくつかの実用的な方法を次に示します。
1。タイプパターン - 1つのステップでチェックしてキャストします
パターンマッチングの最も一般的な用途の1つは、オブジェクトのタイプを確認して同時にキャストすることです。

if(valueはstring str) { console.writeLine($ "its a string:{str.toupper()}"); }
これは、次のような古いコードを置き換えます。
if(値は文字列) { string str =(string)value; // ... }
これはきれいで、変数名を繰り返したり、別のキャストを行うことを避けます。

2。定数パターン - 特定の値に一致します
パターンマッチングを使用して、条件で定数と直接値を比較できます。
if(入力はnull) { console.writeline( "input is null"); }
または数値で:
スイッチ(番号) { ケース0: console.writeLine( "zero"); 壊す; n> 0の場合はcase var n: console.writeline( "position"); 壊す; }
これにより、特にswitch
式と組み合わせると、条件付きロジックが読みやすくなります。
3.パターンを備えた式を切り替えます
C#8はスイッチ式を導入しました。これは、ロジックを簡素化するためにパターンマッチングでうまく機能します。
文字列結果=シェイプスイッチ { 長方形r => $ "rectangle:{r.width} x {r.height}"、 円c => $ "circle:radius {c.radius}"、 null => "no shape"、 _ =>「不明な形」 };
これにより、長いswitch
ステートメントに取って代わり、コードをより表現力を高めます。 _
、上記のカバーされていないものと一致する廃棄パターンです。
4。再帰パターン - ネストされた構造に一致します
C#9以降では、再帰パターンを使用して、ネストされたプロパティに一致することができます。例えば:
if(人は{name: "Alice"、address:{city: "Wonderland"}}))) { console.writeline( "WonderlandからAliceを見つけた"); }
これは、複数のネストされたif
を記述せずに深くネストされたデータをチェックする場合に役立ちます。
留意すべきいくつかのこと:
- パターンマッチングは、
is
、switch
、場合によってはswitch
式で最適に機能します。 - より複雑な条件のために、条項と
when
とパターンを組み合わせることができます。 - 読みやすさが損なわれる可能性のある深くネストされた論理でそれを過度に使用しないでください。
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)

答えは、microsoft.extensions.configurationを使用してappsettings.jsonを読むことです。 1. appsettings.jsonを作成し、コピープロパティを設定します。 2。microsoft.extensions.configuration.jsonパッケージをインストールします。 3。構成を構成Builderでロードします。 4.インデクサーまたはgetConnectionStringを介して値を読みます。 5.強く型と入力された構成クラスを使用するか、バインディングを取得することをお勧めします。

httpclientは、頻繁に作成されるのではなく、長時間再利用する必要があります。ソケットの使い果たしを避けるために、ihttpclientfactoryインジェクション管理を使用することをお勧めします。 DIがない場合は、静的インスタンスを使用して、合理的なライフサイクルを確保します。

usestringforminimal、statictextoperations; usestringbuilderforfrequentModificationsinloopsorlge-scaleconcatenation stoepperformance anducememoryallocationを使用します。

パブリックメンバーには、任意のコードでアクセスできます。 2.Privateはクラス内でのみアクセスできます。 3.保護されているため、クラスと派生クラスへのアクセスが可能になります。 4.内部は、同じアセンブリ内のアクセスに限定されます。 5.ProtectedEnternalalは、派生クラスまたは同じアセンブリへのアクセスに使用される保護および内部の連合です。

.NETモノマーをマイクロサービスに移動すると、1回限りの書き換えを避ける必要があります。 1.最初に、モバイルマシンの移行をクリアし、共通のトラップを避けて、チームがDevOpsと観察可能性の機能を確保することを保証します。 2。Stranglerモードを使用して、徐々に交換し、APIゲートウェイを介して新しいサービスに新しい機能をルーティングします。 3.ドメイン駆動型の設計を使用して、境界のあるコンテキストを識別し、ビジネスの境界に従ってサービスを分割し、データベースを分離します。 4.適切な通信方法を選択し、ユーザーリクエストにhttp/RESTを使用し、イベントにAzureserviceBusなどの非同期メッセージを使用します。 5.イベントの最終的な一貫性、SAGAモード、およびアウトボックスモードを通じて、クロスサービスデータの一貫性を確保します。 6.セリログ、オペンテレメトリー、およびその他のツールの早期統合日付を作成する

first()throwsAnexceptionifnoelementisfound、whilefirstordefault()returnSadeFaultValue; usefirst()whentheSequenceisexpectedTobenon-empty、andfirstordefault()tohandleempty seavecencefuly。

CancellationTokenSourceを作成して、キャンセルトークンを取得します。これは、他のスレッドまたはコンポーネントに通知して操作をキャンセルするために使用されます。 2。トークンをキャンセル(task.runなど)をサポートする非同期方法に渡します。タスクは、キャンセル要求を定期的にチェックして、優雅な終了を達成することができます。

patternMatchinginc#isafeatureusedtocheckobjectsagainstpatternsandextract information concisely.1.typepternsallowchecking andcastinginonestep、asshownwithif(valueisstringstr).2.constantpatternscomparevaluesagainstantcontantsdistantdireccingif(
