タイプに応じて切り替えるためのより良い代替手段はありますか?
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#のタイプオンタイプをシミュレートするためのより良い選択肢はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。