Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การ Implement Interface แบบ Implicit ใน C# คืออะไร และเมื่อไหร่ควรใช้

ใน C# สมาชิกของ Interface สามารถ Implement ได้ 2 แบบคือ Explicit และ Implicit

Implicit Implementation คืออะไร?

  • ไม่ต้องระบุชื่อ Interface หน้าชื่อ Member คอมไพเลอร์จะอนุมานเอง
  • Member จะถูก Expose เป็น public และเข้าถึงได้เมื่อ Cast เป็น Concrete Type
  • การเรียกใช้ Method ไม่ต่างจากปกติ สร้าง Object แล้ว Invoke ทันที
  • ข้อจำกัด: ไม่สามารถใช้ได้หากมีชื่อ Method ซ้ำกันในหลาย Interfaces

ตัวอย่างโค้ด

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

class ShowRoom : ICar, IBike
{
    public void DisplayCar() 
    { 
        throw new NotImplementedException(); 
    }
    
    public void DisplayBike() 
    { 
        throw new NotImplementedException(); 
    }
}

class Program
{
    static void Main()
    {
        ICar car = new ShowRoom();
        IBike bike = new ShowRoom();
        Console.ReadKey();
    }
}

เมื่อไหร่ควรใช้ Implicit?

  • ไม่มีชื่อ Method ซ้ำกันระหว่าง Interfaces
  • ต้องการให้ Member เข้าถึงได้จาก Concrete Type โดยตรง
  • โค้ดอ่านง่าย ไม่ต้อง Cast ไปมา