只關心.NET CLR如何在內部處理接口?.Net CLR如何在內部實現「接口」?
Q1]當CLR遇到類似,會發生什麼:(下同使用)
interface ISampleInterface
{
void SampleMethod();
}
class ImplementationClass : ISampleInterface
{
// Explicit interface member implementation:
public void SampleMethod()
{
// Method implementation.
}
static void Main()
{
//Declare an interface instance.
ISampleInterface mySampleIntobj = new ImplementationClass(); // (A)
// Call the member.
mySampleIntobj.SampleMethod();
// Declare an interface instance.
ImplementationClass myClassObj = new ImplementationClass(); // (B)
//Call the member.
myClassObj.SampleMethod();
}
}
Q2:在上述例子中是如何(A)和(B)有區別嗎?
問題3:是否Generic Interfaces區別對待?
(詢問基本問題像這些的時候感覺像一個小白......反正....)
THX所有。
因爲這只是部分答案,我會留在這裏。首先在代碼中使用 mySampleIntobj.SampleMethod();和myClassObj.SampleMethod();可能調用兩種不同的方法。第一個將調用與該調用匹配的任何明確實現的方法,第二個不會。只有在沒有明確的方法匹配的情況下,它們纔會調用相同的方法 – 2010-07-16 07:00:33
這是否會編譯? AFAIK,你應該爲(B)調用公開'SampleMethod()'。 – Humberto 2010-07-16 13:56:54
哦對了對不起..現在/糾正:) thx :) – Amitd 2010-07-16 16:10:42