(インタビュー質問) 明示的なメソッドではなく暗黙のメソッドを呼び出すことができるクラスで実装されたインターフェイスの例を教えてください。インタフェース暗黙メソッドを呼び出すことはできますが、明示メソッドを呼び出すことはできませんか? (インタビュークエスト!on)
0
A
答えて
0
例:
アセンブリ1:
internal interface IFlyable
{
void Fly();
}
public class Bird: IFlyable
{
public void Fly() { ... }
void IFlyable.Fly() { ... }
}
アセンブリ2:
Bird bird = new Bird();
bird.Fly();
((IFlyable)bird).Fly() // Error, IFlyable is internal
それは面接の質問でした。あなたがそれについて考えるなら、スマートなもの。
2
interface IA
{
void Method1();
void Method2();
void Method3();
}
class A : IA
{
// Implicit implementation
public void Method1()
{
}
// Explicit implementation
void IA.Method2()
{
}
// Implicit + explicit implementation!
public void Method3()
{
}
void IA.Method3()
{
}
}
class TestImplicitExplicit
{
public void Test()
{
A a = new A();
a.Method1(); // ok
//a.Method2(); // does not compile
a.Method3(); // ok
IA ia = a;
ia.Method1(); // ok
ia.Method2(); // ok
ia.Method3(); // ok (calls another method than a.Method3(); !)
}
}
明示的な実装は、インターフェイスを介してのみ表示されます。
関連する問題
- 1. nvarcharのメソッドを呼び出すことができません
- 2. メソッド 'wsl_wordpress_social_login'を呼び出すことができません
- 3. TypeError例外:メソッドを呼び出すことはできませんがcompareResults
- 4. ケースステートメントでメソッドを呼び出すことができますruby
- 5. 代理メソッドをプログラムで呼び出すことはできませんか?
- 6. メソッドを遠隔から呼び出すことができません
- 7. ASPページからJavaメソッドを呼び出すことができません:
- 8. コントローラでLogOffメソッドを呼び出すことができません
- 9. TypeError:nullのメソッド "getRange"を呼び出すことはできません。 (行0)
- 10. nullのメソッド 'append'を呼び出すことができません
- 11. Javascript - ヌルのメソッド 'split'を呼び出すことができません
- 12. Uncaught TypeError:ヌルのメソッド 'onClose'を呼び出すことができません。
- 13. 未定義のメソッド 'split'を呼び出すことができません
- 14. Response.Redirectをページコールバックで呼び出すことはできません
- 15. WCFサービスがメソッドをクライアントから呼び出すことはできますか?
- 16. C#のオブジェクトリテラルでメソッドを直接呼び出すことはできますか?
- 17. C#で匿名メソッドを呼び出すことはできますか?
- 18. 変数でメソッドを呼び出すことはできますか?
- 19. JPQLで静的Javaメソッドを呼び出すことはできますか
- 20. Durandalでカスタムバインドウィジェットのメソッドを呼び出すことはできますか?
- 21. JavaScript Array.prototype.sort()DOM.HTMLLIElementを呼び出すことができません
- 22. メンバー関数を呼び出すことができません
- 23. angularjs - ユニットテスト、ファクトリメソッドを呼び出すことができません
- 24. MenuItemのActionListenersを呼び出すことができません
- 25. 変数を呼び出すことができません
- 26. 抽象メンバを呼び出すことができません
- 27. MPAndroidChartのonValueSelectedメソッドからregisterForContextMenuを呼び出すことはできますか?
- 28. メソッド内で変数を呼び出すことで値を設定することができません
- 29. ジェネリックメソッドに渡す型のメソッドを呼び出すことはできますか?
- 30. jquery ui:初期化の前にダイアログのメソッドを呼び出すことはできません。メソッド 'close'を呼び出そうとしました
明示的にオーバーライドするインターフェイスメソッドを呼び出せないクラスを指していますか? – rerun
インターフェイスを実装したクラスの暗黙的および明示的メソッドとはどういう意味ですか?公的、私的のようなアクセス修飾子を意味しますか? – Mharlin
@rerun正しい。 – Idrees