ホームページ > バックエンド開発 > C++ > C#のタイプオンタイプをシミュレートするためのより良い選択肢はありますか?

C#のタイプオンタイプをシミュレートするためのより良い選択肢はありますか?

Barbara Streisand
リリース: 2025-01-28 15:11:13
オリジナル
798 人が閲覧しました

Are There Better Alternatives to Simulating a Switch on Type in C#?

タイプに応じて切り替えるためのより良い代替手段はありますか?

提供されるコードフラグメントは、タイプの関係のためにタイプに応じてタイプを実際に切り替えることができない場合、この方法を使用できます。ただし、さまざまなシナリオでは、より適切な選択肢がいくつかある場合があります。

c#7以降

c#7の導入により、モードの一致に応じて実際のタイプを実現するために切り替えることができます。

c#6

<code class="language-csharp">switch(shape)
{
    case Circle c:
        WriteLine($"圆形,半径为 {c.Radius}");
        break;
    case Rectangle s when (s.Length == s.Height):
        WriteLine($"{s.Length} x {s.Height} 正方形");
        break;
    case Rectangle r:
        WriteLine($"{r.Length} x {r.Height} 矩形");
        break;
    default:
        WriteLine("<未知形状>");
        break;
    case null:
        throw new ArgumentNullException(nameof(shape));
}</code>
ログイン後にコピー

c#6では、スイッチステートメントでnameof()演算子を使用できます。 c#5以前のバージョン

C#5の前では、タイプに応じてスイッチングをシミュレートできますが、これにはタイプ名を含む文字列が必要です。
<code class="language-csharp">switch(o.GetType().Name) {
    case nameof(AType):
        break;
    case nameof(BType):
        break;
}</code>
ログイン後にコピー
選択する代替手段は、アプリケーションの特定の要件と使用されるC#バージョンに依存します。

以上がC#のタイプオンタイプをシミュレートするためのより良い選択肢はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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