【Unity】switch式について

とあるプルリクエストを見ていたときに、今までみたことのない書き方があり調べてみるとことにしました。

switch式

調べたとこと「switch式」という演算子でした。

docs.microsoft.com

具体例

まず、2つのタイプを用意します。

public enum TestType
{
    None,
    Test,
}

public enum TestChangeType
{
    ChangeNone,
    ChangeTest,
}

これをこのような形で利用します。

var changeType = testType switch
{
      TestType.None => TestChangeType.ChangeNone,
      TestType.Test => TestChangeType.ChangeTest,
       _ => TestChangeType.ChangeNone
};

こうすれば、あるenum値を別のenum値へと置き換えることができます。

_ パターン

先程のコードの次の部分は、switch時にどのパターンにも当てはまらない時にどうするかの指定です。 switch文のdefaultのような感じです。

_ => TestChangeType.ChangeNone

最後に

switch式はc#8.0から使える機能でした。 新しい機能を追っていないと、こういった方法を選択することができなくなるので、もう少し勉強しないといけないなと感じました。 C# 8.0 の新機能 - C# ガイド | Microsoft Docs