虛擬成員
更新:2007 年 11 月
virtual (Visual Basic 中為 Overridable) 成員可讓您變更成員的行為,透過的方式是提供不同的成員實作。當您想要型別的衍生類別來處理給定案例的特定項目時,通常就會使用這類成員。例如,WebRequest 類別可定義功能來傳送要求到任何通用資源識別項 (URI)。FtpWebRequest 類別是 WebRequest 的衍生類別 (其會覆寫它的虛擬方法,處理將要求傳送到使用檔案傳輸通訊協定 (FTP) 機制的 URI 之動作)。
虛擬成員的執行效能要比回呼和事件來得好,但是不會優於非虛擬方法。
請不要讓成員變成虛擬,除非您有正當的理由,而且您瞭解所有與虛擬成員的設計、測試和維護有關的成本。
在版本之間變更虛擬成員的實作可能會造成細微的版本不相容。因此,如果要正確地設計及完整測試虛擬方法,將會花費最多的成本。
在虛擬成員上,受保護的存取範圍要優先於公用存取範圍。公用成員應該在必要時提供擴充性,透過的方式是呼叫受保護的虛擬成員。
所有與繼承關係無關的情況下所需的成員都應該是公用成員。
Portions Copyright 2005 Microsoft Corporation.All rights reserved.
Portions Copyright Addison-Wesley Corporation.All rights reserved.
如需設計方針的詳細資訊,請參閱由 Krzysztof Cwalina 和 Brad Abrams 所著,並由 Addison-Wesley 於 2005 年發行的「Framework 設計方針:可重複使用之 .NET 程式庫的慣例、慣用語法和模式」一書。