เหตุใด C # จึงออกแบบวิธีนี้
ตามที่ฉันเข้าใจอินเทอร์เฟซจะอธิบายพฤติกรรมเท่านั้นและมีจุดประสงค์ในการอธิบายข้อผูกพันตามสัญญาสำหรับคลาสที่ใช้อินเทอร์เฟซที่มีการใช้งานพฤติกรรมบางอย่าง
หากคลาสต้องการใช้พฤติกรรมนั้นในวิธีการแชร์ทำไมถึงไม่ควรใช้
นี่คือตัวอย่างของสิ่งที่ฉันมีอยู่ในใจ:
// These items will be displayed in a list on the screen.
public interface IListItem {
string ScreenName();
...
}
public class Animal: IListItem {
// All animals will be called "Animal".
public static string ScreenName() {
return "Animal";
}
....
}
public class Person: IListItem {
private string name;
// All persons will be called by their individual names.
public string ScreenName() {
return name;
}
....
}
IListItem.ScreenName() => ScreenName()
(ใช้ไวยากรณ์ C # 7) จะใช้วิธีการอินเทอร์เฟซอย่างชัดเจนโดยการเรียกวิธีการคงที่ สิ่งที่น่าเกลียดเมื่อคุณเพิ่มการสืบทอดไปที่แม้ว่า (คุณต้องปรับใช้อินเทอร์เฟซ)