とあるプルリクエストを見ていたときに、今までみたことのない書き方があり調べてみるとことにしました。
switch式
調べたとこと「switch式」という演算子でした。
具体例
まず、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