可能的情况有:从一个类继承,从一个或多个接口继承,从一个类和一个或多个接口继承。
使用Type类的BaseType属性来取得类从哪个类继承。GetInterfaces方法来取得类都实现了哪些接口。
测试代码如下:
类库代码:
using
?System;
namespace ?GetInterface
{
?
?public?class?Class1?:?Class2,BaseInterface,BaseInterface1
?{
??public?Class1()
??{
???
??}
??public?void?aaa()
??{
???Console.WriteLine("It's?aaa");
??}
??public?void?bbb()
??{
???Console.WriteLine("It's?bbb");
??}
?}
?public?class?Class2
?{
??public?Class2()
??{
??}
?}
?interface?BaseInterface
?{
??void?aaa();
?}
?interface?BaseInterface1
?{
??void?bbb();
?}
}
namespace ?GetInterface
{
?
?public?class?Class1?:?Class2,BaseInterface,BaseInterface1
?{
??public?Class1()
??{
???
??}
??public?void?aaa()
??{
???Console.WriteLine("It's?aaa");
??}
??public?void?bbb()
??{
???Console.WriteLine("It's?bbb");
??}
?}
?public?class?Class2
?{
??public?Class2()
??{
??}
?}
?interface?BaseInterface
?{
??void?aaa();
?}
?interface?BaseInterface1
?{
??void?bbb();
?}
}
在winform下显示调用显示:
Type?type?
=
?
typeof
(GetInterface.Class1);
Type[]?typeInterface? = ?type.GetInterfaces();
foreach ?(?Type?t? in ?typeInterface?)
{
????this.listBox1.Items.Add(t.ToString());
}
Type?typeBaseClass? = ?type.BaseType;
this .listBox1.Items.Add?(?typeBaseClass.ToString());
Type[]?typeInterface? = ?type.GetInterfaces();
foreach ?(?Type?t? in ?typeInterface?)
{
????this.listBox1.Items.Add(t.ToString());
}
Type?typeBaseClass? = ?type.BaseType;
this .listBox1.Items.Add?(?typeBaseClass.ToString());