C# dotnet 6.0 変数の型(type)で switchしたい場合のコード例です。
下記 2つの クラスをswitchで判断したい とします。
class A {} class B {}
List<object>に 上記2つのA, Bクラス インスタンスを入れます。
var objList = new List<object> { new A(), new B() };
1つのswitchで、型が2つ型変数の入ったリスト内の型を判断する
foreach(var obj in objList) { switch (obj){ case A aValue: Console.WriteLine("This type is {0}.",aValue.GetType().ToString()); break; case B bValue: Console.WriteLine("This type is {0}.",bValue.GetType().ToString()); break; } }
上記の場合、 変数が switch(値)ですが switch(type) の コード例です。
var objList = new List<Type> { (new A()).GetType(), (new B()).GetType() }; foreach(var obj in objList) { switch (obj){ case Type aValue when aValue == typeof(A): Console.WriteLine("This type is {0}.",aValue.ToString()); break; case Type bValue when bValue == typeof(B): Console.WriteLine("This type is {0}.",bValue.ToString()); break; } }