本日は C# の小ネタ枠です。
C# で is 演算子を使って型変換と成否判定を同時に行う方法を記事にします。
is演算子
is演算子は型のキャストとその変換の型に互換性があるかの判定を同時に行います。
本演算子は C# 9.0 以降利用可能です。Unity ではバージョン 2021.2 以降で C# 9.0 が利用可能です。
learn.microsoft.com
前回記事
型のキャストには以下の前回記事で作成した自作の継承クラスを使って試してみます。
bluebirdofoz.hatenablog.com
サンプルコード
以下のサンプルコードを作成しました。
is 演算子を使って型のキャストとその成否判定を同時に行っています。
・IsTest.cs
using UnityEngine; public class IsTest : MonoBehaviour { // Start is called before the first frame update void Start() { ItemBase item = new BallToy();; if (item is ToyBase toy) { Debug.Log($"{toy.Name} は ToyBase に変換できた"); } if (item is FoodBase food) { Debug.Log($"{food.Name} は FoodBase に変換できた"); } // as 演算子のキャストで書いた場合、以下と同義 ToyBase toyBase = item as ToyBase;; if (toyBase != null) { Debug.Log($"{toyBase.Name} は ToyBase に変換できた"); } FoodBase foodBase = item as FoodBase;; if (foodBase != null) { Debug.Log($"{foodBase.Name} は FoodBase に変換できた"); } } }
以下の通り、型のキャストとその成否判定が実施できました。