メソッド シグネチャが競合する 2 つのインターフェイスがあるとします。
interface IA
{
void F();
}
interface IB
{
int F();
}
そして今、次のようなクラスを作成します:
class Test : IA, IB
{
public void F() { ... }
int IB.F() { ... }
}
as という名前のメソッドはメソッドIB.F
のように見えますが、次のようなprivate
ことができます。
var t = new Test();
t.F(); //Calls public method F
((IB)t).F(); //Calls private method IB.F!!!
だから私の質問は:IB.F
C# コンパイラは、クラス スコープ外で呼び出すことができることをどのように認識しますか?
その接頭辞だと思いますが、コードをIB.
調べたところ、奇妙なシグネチャを持つメソッドとして表示されます。IL
private