isは、指定のオブジェクトが指定のクラスであるかを判定する。
is - C# リファレンス | Microsoft Docs
そのクラスと同じというより、互換性があるかということなので、アップキャストできる基底クラスでもTrueになる。
基底クラスBaseClass.csは、
Outputメソッドだけ。
これを継承した派生クラスDerivedClass1.csは、
DerivedClass2.csは、
出力する文字列が違う。
(とはいえ今回は最初の確認にしか使わない。)
で、MainClass.csは、
BaseClassのobjに生成したDerivedClass1のオブジェクトを格納。
is演算子で、DerivedClass1、DerivedClass2、BaseClassと判定すると、
DerivedClass1.Output() (obj is DerivedClass1) = True (obj is DerivedClass2) = False (obj is BaseClass) = True 続行するには何かキーを押してください . . .
DerivedClass2は当然違うのでFalseだが、BaseClassは基底クラスなのでTrueになる。
Sample/cs/is/is/src/is at master · bg1bgst333/Sample · GitHub