具有灵活功能的超级类型
本文关键字:类型 功能 | 更新日期: 2023-09-27 18:19:22
我该如何实现这个呢:
- 我有3种类型(实际上是接口):A, B和C
- A没有方法,但B和C有一些方法。
- 我希望类型A在某些情况下可以转换为类型B并使用B方法,在其他情况下转换为类型C并使用其方法?
class Program
{
interface A { }
interface B :A { void b(); } // B inherits from A
interface C :A { void c(); } // C also inherits from A
static void Main()
{
// declare vars
A a = null;
B b = null;
C c = null;
// a can happily hold references for B.
a = b;
// To call B's methods you need to cast it to B.
((B)a).b();
// a can happily hold references for C.
a = c;
// To call C's methods you need to cast it to C.
a = c;
((C)a).c();
}
}
从你的评论
class Program
{
private interface A { }
private interface B : A { string b();}
private interface C : A { string c();}
class BClass : B { public string b() { return "B"; } }
class CClass : C { public string c() { return "C"; } }
private static void Main()
{
A a = null;
B b = new BClass();
C c = new CClass();
a = b;
((B)a).b();
a = c;
((C)a).c();
}
}