2015-02-10 66 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