準備
(なし)
デザイン
1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にリストボックス (listBox1) を配置します。
サンプルコード (C#)
// 名前空間の追加 // (なし) // クラスの宣言 public class TestClass1 { } public class TestClass2 : TestClass1 { } // コード private void button1_Click(object sender, EventArgs e) { TestClass1 tc1 = new TestClass1(); listBox1.Items.Add(tc1 is TestClass1); listBox1.Items.Add(tc1 is TestClass2); TestClass2 tc2 = new TestClass2(); listBox1.Items.Add(tc2 is TestClass1); listBox1.Items.Add(tc2 is TestClass2); }
解説
インスタンス化されたオブジェクトのクラスを判別しています。判別には is 演算子を使いますが、インスタンス化に使われたクラスのスーパークラスも判別できます。
このサンプルでは、オブジェクト tc1, tc2 のクラスを判別しています。tc1 は TestClass1 から作成されていますので、TestClass2 で判別すると false となります。
tc2 は TestClass2 から作成されていますので、作成元のクラス TestClass2 とそのスーパークラス TestClass1 でも判別されます。
結果
動作確認環境
Visual Studio 2015 Professional (C# 6.0)