标签:nes private asi 测试 代码 自己 公共类 data- sof
添加测试类:
public class TestClass2 : TestClass1 { } public class TestClass1 : TestClass0 { public override void TestMethod() { } } public class TestClass0 : ITestInterface { public virtual void TestMethod() { } } public interface ITestInterface { }
1.判断是否实现了指定接口
//true
var hasInterface = typeof(TestClass2).GetInterfaces().Any(i => i.Name == nameof(ITestInterface));
2.判断是否继承了指定基类
//true
var isSubOfTestClassBase = typeof(TestClass2).IsSubclassOf(typeof(TestClass0));
3.判断是否重写了基类方法
获取指定方法的信息后,可以通过DeclaringType-声明此方法的成员类信息,判断与当前类信息是否一致。
//false
var hasTestClass2OverrideMethod = typeof(TestClass2).GetMethod(nameof(TestClass0.TestMethod)).DeclaringType.Equals(typeof(TestClass2));
//true
var hasTestClass1OverrideMethod = typeof(TestClass1).GetMethod(nameof(TestClass0.TestMethod)).DeclaringType.Equals(typeof(TestClass1));
4.判断类A是否为类B的嵌套类
public class TestClass { public class TestNestedClass { } }
测试:
//true
var isNestedInTestClass= typeof(TestClass).GetNestedTypes().Any(i=>i.Equals(typeof(TestClass.TestNestedClass)));
5. 类/接口的访问类型
通过如下访问类型的组合,进行判断
标签:nes private asi 测试 代码 自己 公共类 data- sof
原文地址:https://www.cnblogs.com/kybs0/p/9928329.html