在C#中,有可能將某個方法的返回類型定義爲某些額外實現某個接口的類?在C#中實現作爲方法返回類型的類的接口類
例如,在GTK#應用程序中,我希望有一個小部件來顯示文檔。我想提供這個小部件的幾個實現 - 一個基於Gecko,一個在Webkit上,另一個基本在常規的Gtk.TextView上。顯然,所有這些類都必須從Gtk.Widget(間接)繼承。我會聲明一個所有這些小部件都會實現的接口。最後,我會創建一個工廠方法,根據例如創建合適的小部件。可用的庫。工廠方法應該返回什麼類型?
interface IDocumentView {...};
class GeckoDocumentView : Gecko.Webcontrol, IDocumentView {...};
class WebKitDocumentView : WebKit.WebView, IDocumentView {...};
class BasicDocumentView : Gtk.TextView, IDocumentView {...};
class DocumentViewFactory {
static IDocumentView CreateView() {...};
}
什麼應該是DocumentViewFactory.CreateView方法的返回類型?如果它無法同時指定Gtk.Widget和IDocumentView,它應該是:
- Gtk.Widget(基類),這將在後面澆鑄IDocumentView?
- IDocumentView(接口),它將被轉移到Gtk.Widget?
編輯 - 可以從特定基類繼承的接口強制?