Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Triển khai ngầm (Implicit Implementation) của Interface trong C# là gì và khi nào nên dùng?

Trong C#, các thành viên của interface có thể được triển khai theo hai cách: tường minh (explicit) hoặc ngầm (implicit).

Triển khai ngầm (Implicit Implementation)

  • Không bao gồm tên interface trước tên thành viên, trình biên dịch sẽ tự suy luận.
  • Các thành viên được public và có thể truy cập khi đối tượng được cast về kiểu cụ thể (concrete type).
  • Cách gọi phương thức không khác biệt: chỉ cần tạo đối tượng của lớp và gọi trực tiếp.
  • Hạn chế: Không thể dùng triển khai ngầm nếu có trùng tên phương thức trong nhiều interface.

Ví dụ minh họa

interface ICar { 
    void DisplayCar(); 
}
interface IBike { 
    void DisplayBike(); 
}

class ShowRoom : ICar, IBike 
{
    public void DisplayCar() 
    { 
        Console.WriteLine("Hiển thị xe hơi"); 
    }
    
    public void DisplayBike() 
    { 
        Console.WriteLine("Hiển thị xe máy"); 
    }
}

class Program 
{
    static void Main() 
    {
        ICar car = new ShowRoom();
        IBike bike = new ShowRoom();
        
        car.DisplayCar();  // Gọi qua interface
        bike.DisplayBike(); // Gọi qua interface
        
        ShowRoom room = new ShowRoom();
        room.DisplayCar();  // Gọi trực tiếp qua class
    }
}

Khi nào nên dùng Implicit Implementation?

  • Khi các interface không có thành viên trùng tên.
  • Khi muốn code đơn giản, dễ đọc và gọi phương thức trực tiếp trên đối tượng class.
  • Khi không cần ẩn đi chi tiết triển khai khỏi người dùng class.

Lưu ý quan trọng

Nếu hai interface có phương thức cùng tên (ví dụ: void Display()), bạn bắt buộc phải dùng explicit implementation để phân biệt.