本日は C# の小ネタ枠です。
C#9.0でパターン結合子(not,and,or)を利用する方法を記事にします。
パターン結合子(not,and,or)
C# 9.0 からは not、and、および or のパターン結合子を使って論理パターンを作成可能です。
Unity ではバージョン 2021.2 以降で C# 9.0 が利用可能です。
learn.microsoft.com
not:パターンが式に一致しないことを確認します。
and:両方のパターンが式に一致することを確認します。
or:いずれか片方のパターンが式に一致することを確認します。
本パターン結合子を使って if 文の判定を行う場合 is 演算子と合わせて利用する必要があります。
if (input is not null) { // ... }
サンプルコード
実際にパターン結合子を使ったサンプルコードを作成しました。
パターン結合子は if 文での判定のほか、switch 文でも利用可能です。
・AndOrTest.cs
using System; using UnityEngine; public class AndOrTest : MonoBehaviour { private enum CheckType { Alpha, Beta, Gamma, Delta, Epsilon, Zeta } // Start is called before the first frame update void Start() { int count = 5; if (count is > 0 and < 10) { Debug.Log("0 > count > 10"); } CheckType value = CheckType.Alpha; switch (value) { case CheckType.Alpha or CheckType.Beta: Debug.Log("Alpha or Beta"); break; case CheckType.Gamma or CheckType.Delta: Debug.Log("Gamma or Delta"); break; case CheckType.Epsilon or CheckType.Zeta: Debug.Log("Epsilon or Zeta"); break; default: throw new ArgumentOutOfRangeException(); }; } }