目次
2。定数パターン - 特定の値に一致します
3.パターンを備えた式を切り替えます
4。再帰パターン - ネストされた構造に一致します
ホームページ バックエンド開発 C#.Net チュートリアル C#でパターンマッチングを使用する方法は?

C#でパターンマッチングを使用する方法は?

Sep 20, 2025 am 04:32 AM

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

C#でパターンマッチングを使用する方法は?

C#のパターンマッチングは、パターンに対してオブジェクトをチェックし、簡潔で読みやすい方法で情報を抽出できる強力な機能です。さまざまなタイプ、条件、または構造を使用する場合に特に便利です。

C#でパターンマッチングを使用する方法は?

C#コードでパターンマッチングを使用できるいくつかの実用的な方法を次に示します。


1。タイプパターン - 1つのステップでチェックしてキャストします

パターンマッチングの最も一般的な用途の1つは、オブジェクトのタイプを確認して同時にキャストすることです。

C#でパターンマッチングを使用する方法は?
 if(valueはstring str)
{
    console.writeLine($ "its a string:{str.toupper()}");
}

これは、次のような古いコードを置き換えます。

 if(値は文字列)
{
    string str =(string)value;
    // ...
}

これはきれいで、変数名を繰り返したり、別のキャストを行うことを避けます。

C#でパターンマッチングを使用する方法は?

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を記述せずに深くネストされたデータをチェックする場合に役立ちます。


留意すべきいくつかのこと:

  • パターンマッチングは、 isswitch 、場合によってはswitch式で最適に機能します。
  • より複雑な条件のために、条項とwhenとパターンを組み合わせることができます。
  • 読みやすさが損なわれる可能性のある深くネストされた論理でそれを過度に使用しないでください。

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#のappsettings.jsonからアプリの設定を読む方法は? C#のappsettings.jsonからアプリの設定を読む方法は? Sep 15, 2025 am 02:16 AM

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

C#でHTTPCLIENTクラスを正しく使用する方法は? C#でHTTPCLIENTクラスを正しく使用する方法は? Sep 15, 2025 am 01:23 AM

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

C#文字列対StringBuilderのパフォーマンスと使用法。 C#文字列対StringBuilderのパフォーマンスと使用法。 Sep 16, 2025 am 05:24 AM

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

C#のさまざまなアクセス修飾子は何ですか? C#のさまざまなアクセス修飾子は何ですか? Sep 21, 2025 am 01:43 AM

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

モノリスからマイクロサービスまで:.NETアプリケーション用の移行ガイド モノリスからマイクロサービスまで:.NETアプリケーション用の移行ガイド Sep 19, 2025 am 05:21 AM

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

c#linqのfirst()とfirstordefault()の違いは何ですか? c#linqのfirst()とfirstordefault()の違いは何ですか? Sep 16, 2025 am 12:33 AM

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

C#でキャンセルトークンを作成して使用する方法は? C#でキャンセルトークンを作成して使用する方法は? Sep 21, 2025 am 01:49 AM

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

C#でパターンマッチングを使用する方法は? C#でパターンマッチングを使用する方法は? Sep 20, 2025 am 04:32 AM

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

See all articles