2015-02-10 68 views
-3

如何从共享相同接口的类创建基类的实例?下面是什么,我试图做一个例子:从接口创建基类

interface IBASE { } 

public class BASE : IBASE { } 

class TestClass : IBASE { } 

void main() 
{ 
    TestClass tc = new TestClass(); 
    IBASE ib = (IBASE)tc; 
    BASE b = (BASE)ib; // error 
} 

我想要做的是有接口在不同的组件,其中用户只需访问该组件和接口,并创建一个类界面。 我试图使用这个作为扩展的方法,我试图推出我自己的而不是使用MEF或其他解决方案,但我有一种感觉,我正在以这种错误的方式去做。

那么有什么解决方案? 谢谢。

+0

您正在寻找的东西的名称是“[Duck Typing](http://en.wikipedia.org/wiki/Duck_typing)”。 – 2015-02-10 22:08:47

回答

1

这是完全不可能的。

除非其运行时类型实际继承该类,否则不能将对象转换为类。

+0

隐式/显式运算符重载如何? – 2015-02-10 22:10:09

+0

@ Selman22:这没有帮助;没有办法将该对象转换为该类。 (你可以返回一个不同类别的单独实例,但这不是他想要的) – SLaks 2015-02-10 22:24:14

+0

除了不可能,还有什么建议吗? – Glen 2015-02-11 00:19:04