Chỉ cần tò mò về cách .NET CLR xử lý các giao diện nội bộ?Làm thế nào để .Net CLR thực hiện một "Giao diện" nội bộ?
Q1] Chuyện gì xảy ra khi CLR gặp cái gì đó như: (. Cùng sử dụng dưới đây)
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: Trong ví dụ trên như thế nào là (A) và (B) được phân biệt?
Q3: Có phải Generic Interfaces được xử lý khác nhau không?
(Cảm thấy giống như một noob khi đặt câu hỏi cơ bản như thế này ... anyways ....)
Thx all.
vì nó chỉ là một phần câu trả lời tôi sẽ để nó ở đây. Để bắt đầu với mã của bạn mySampleIntobj.SampleMethod(); và myClassObj.SampleMethod(); có thể gọi hai phương pháp khác nhau. Người đầu tiên sẽ gọi bất kỳ phương thức thực hiện rõ ràng nào khớp với cuộc gọi, thứ hai sẽ không thực hiện. chỉ trong trường hợp không có phương thức kết hợp rõ ràng, chúng sẽ gọi cùng phương thức –
Điều này có biên dịch không? AFAIK, bạn nên có một 'SampleMethod()' công khai cho cuộc gọi (B). – Humberto
oh yes sorry..edited/correct now :) thx :) – Amitd