前言
預設介面方法 (Default Interface Method) 是 C# 8.0 另一項新功能,他允許開發人員使用 Traits 程式技術。 Traits 是物件導向開發的一個概念,它呈現一組方法以用於擴充類別功能,可提高沒有相關類別之間方法的重複使用,是一個強大的撰寫程式技術(參考資料)。本篇文章將簡單介紹預設介面方法,若有錯誤或任何建議,請各位先進不吝指教,謝謝介紹
在C# 8.0 中,你能在 interface 內加入預設方法。以下列 console 範例程式為例,我們新增了一個 interface IPrintService 與 實作類別 PrintService。接下來,我們在在 interface 內我們加入了一個預設方法,列印出 "我是interface 內的預設方法":namespace InterfaceDefaultMethod { // 介面 interface IPrintService { public void DefaultMethod() { Console.WriteLine("我是 interface 內的預設方法"); } } // 實作類別 class PrintService : IPrintService { } class Program { static void Main(string[] args) { IPrintService service = new PrintService(); service.DefaultMethod(); } } }
執行後結果如下:
在過去 C# 中其實不能直接在介面中使用方法,而在C# 8.0 (也就是上面的範例),你可以在interface 內使用預設方法,在宣告 IPrintService service = new PrintService(); 後使用它。但若是將 IPrintService 改成 PrintService,則會發生錯誤。
class Program { static void Main(string[] args) { PrintServiceservice = new PrintService(); service.DefaultMethod(); } }
參考資料
1. Default Interface Methods in C# 8 - infoQ2. Trait (computer programming) - Wiki
3. Traits (電腦科學) - Wiki
4. Default interface methods - Microsoft Docs
0 留言