ホームページ > バックエンド開発 > C++ > C#で優れたタイプベースの制御フローを達成するにはどうすればよいですか?

C#で優れたタイプベースの制御フローを達成するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-28 15:31:09
オリジナル
756 人が閲覧しました

How Can I Achieve Superior Type-Based Control Flow in C#?

C#

に高レベルのタイプベースの制御フローを実装します C#は多機能性で知られていますが、常にタイプに応じて切り替えることができない重要な制限でした。ただし、新しい言語バージョンの出現により、この制限を回避するために多くの代替方法が出現しています。

c#7モードマッチング

C#7モードマッチングを導入します。これは、タイプに応じて直接切り替えることができるエレガントなメカニズムです。次の例を考えてみましょう:

モードマッチングは、スイッチステートメントでさまざまなタイプを処理するためのシンプルでタイプのセキュリティ方法を提供し、それによりコードの読みやすさを改善し、より効果的な特定のタイプの操作を促進します。

C#6のnameof()演算子switch (shape) { case Circle c: WriteLine($"圆形,半径为 {c.Radius}"); break; // ... } c#6ユーザーの場合、nameof()演算子は代替ソリューションを提供します。タイプ名をターゲットとして文字列として使用することにより、以下に示すようにスイッチステートメントを作成できます。

モードマッチングほど普遍的ではありませんが、この方法は、C#6以前のバージョンで分類するための信頼できる方法を提供します。

c#5以前のバージョンは、タイプ名のタイプ名を使用しています

C#5以下を使用しているユーザーの場合、柔軟性は低いものの、ハードコードタイプ名文字列を使用した基本的なスイッチステートメントはまだ実行可能な方法です。

新しい対応するオブジェクトの複雑さはありませんが、この方法は、C#の初期バージョンの単純なタイプベースの決定のニーズを引き続き満たすことができます。
<code class="language-csharp">switch (o.GetType().Name)
{
    case nameof(AType):
        break;
    // ...
}</code>
ログイン後にコピー

以上がC#で優れたタイプベースの制御フローを達成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート