![](/img/trans.png)
[英]Create an IEnumerable<Interface> from a bunch of ICollection<Implementation> 's in C#
[英]C# syntax: Placing the interface's name in the implementation's declaration
它被稱為接口的顯式實現 。 這意味着CanExecute的這個特定實現將不可見(並且不會運行),除非該對象被轉換為ICommand。
這在允許類為方法名稱重疊的不同接口提供不同實現時非常有用
public interface InterfaceOne {
void SomeMethod();
}
public interface InterfaceTwo {
void SomeMethod();
}
public class Impl : InterfaceOne, InterfaceTwo {
public void InterfaceOne.SomeMethod() {Console.WriteLine("One");}
public void InterfaceTwo.SomeMethod() {Console.WriteLine("Two");}
}
我個人討厭這種語法。 以OracleParameter為例, 它只提供ICloneable的顯式實現 。
如果您有對OracleParameter的引用,則Clone()方法將不會出現在intellisense中,並且在“轉到定義”時將不可見。 但是,如果你這樣做((ICloneable)parameter).Clone()
。 為了甚至知道這是可能的,你可以做到這一點,你幾乎陷入了博客搜索。
這稱為顯式接口實現 ,您可以在此處閱讀。
基本思想是這些方法/屬性只有在通過該類型的接口實例顯式使用時才可訪問。
這稱為顯式接口實現,您可以在此處閱讀更多相關信息 。
在Visual Studio中,如果從界面繼承,則可以右鍵單擊類定義中的界面名稱。 您可以單擊“實現接口”,或在子菜單“顯式實現接口”中單擊。 這是實現接口的便捷捷徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.