Heim >Backend-Entwicklung >C++ >Gibt es bessere Alternativen zur Simulation eines Schaltentyps in C#?
Gibt es eine bessere Alternative zum Schalten entsprechend dem Typ?
C# 7 und höhere Versionen
Mit der Einführung von C# 7 kann es umgeschaltet werden, um den realen Typ gemäß dem Modus -Übereinstimmung zu realisieren:
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>
In C# 6 können Sie den Namen von nameof () in der Switch -Anweisung verwenden:
C# 5 und frühere Versionen
<code class="language-csharp">switch(o.GetType().Name) { case nameof(AType): break; case nameof(BType): break; }</code>
Vor C# 5 können Sie das Schalten entsprechend dem Typ simulieren. Dies erfordert jedoch eine Zeichenfolge, die den Typnamen enthält:
Welche Alternative zur Auswahl hängt von den spezifischen Anforderungen der Anwendung und der verwendeten C# -Version ab.Das obige ist der detaillierte Inhalt vonGibt es bessere Alternativen zur Simulation eines Schaltentyps in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!