据我所知,每个变量都知道它的运行时类型。
这是一个例子:
void Main()
{
C c = new C();
c.M();
I i = (I)c;
i.M();
}
public interface I
{
void M();
}
public class C : I
{
void I.M()
{
Console.WriteLine("I.M");
}
public void M()
{
Console.WriteLine("M");
}
}
如果我理解正确,i
仍然知道它的类型是C
. 那么,让i
我们决定使用I.M
而不是的机制是M
什么?