在升級過程中,我遇到了類似這樣的代碼。接口的隱式和顯式實現
interface ICustomization
{
IMMColumnsDefinition GetColumnsDefinition();
}
class Customization : ICustomization
{
private readonly ColumnDefinition _columnDefinition;
//More code here.
public ColumnsDefinition GetColumnsDefinition()
{
return _columnDefinition;
}
ColumnsDefinition ICustomization.GetColumnsDefinition() //redundant
{
return GetColumnsDefinition();
}
}
我的問題是: 有沒有在這段代碼的任何需要/使用的界面的「顯性」的實施? 如果我刪除上面標記爲「冗餘」的方法(顯式實現接口),它會產生任何問題嗎? PS:我明白接口的顯式實現是非常重要的,當我們只需要在接口級別訪問一個方法,並且使用兩個具有相同方法簽名的接口時,它就可以使用。
爲什麼要有一個虛擬的非顯式實現是一個明確的實現的原因?如果你實現了並且創建了一個子類,那麼如果你調用引用子類對象的接口變量的方法會發生什麼?你能提供一個例子嗎? _also看到[我的問題](http://stackoverflow.com/q/10165296/537956)._ – comecme 2012-04-15 19:49:59