自己型比較を含む、C# でのサブクラスの関係を確実にチェックします
C# で型が別の型のサブクラスであるかどうかを判断するには、IsSubclassOf
を使用できます。
typeof(SubClass).IsSubclassOf(typeof(BaseClass)); // 返回 true
typeof(BaseClass).IsSubclassOf(typeof(BaseClass)); // 返回 false
Type.IsAssignableFrom:
typeof(BaseClass).IsAssignableFrom(typeof(DerivedClass)); // 返回 true
typeof(BaseClass).IsAssignableFrom(typeof(int[])); // 返回 true
is and as (オブジェクト操作):
これらの演算子は型オブジェクトではなくオブジェクトを必要とするため、型定義の比較には使用できません:
// 无法编译: SubClass is BaseClass // 无法编译: typeof(SubClass) is typeof(BaseClass)
カスタムメソッド:
サブクラスの関係を正確に確認するために、ヘルパー メソッドを作成できます。
public static bool IsSameOrSubclass(Type potentialBase, Type potentialDescendant) { return potentialDescendant.IsSubclassOf(potentialBase) || potentialDescendant == potentialBase; }
以上がC# で自己型比較を含むサブクラスの関係を確実にチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。