C# dotnet 6.0 変数の型でswitchしたい場合

Pocket

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;
    }
}
C# それぞれの型でswitchできています
結果 型でswitchできています

上記の場合、 変数が 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;
    }
}

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED