虚成员

更新:2007 年 11 月

virtual(在 Visual Basic 中为 Overridable)成员允许通过提供该成员的不同实现来更改成员行为。如果类型的派生类要处理给定的特定情况,通常会使用虚成员。例如,WebRequest 类定义向任何统一资源定位符 (URI) 发送请求的功能。FtpWebRequest 类是 WebRequest 的派生类,前者重写后者的虚方法,以处理向使用文件传输协议 (FTP) 方案的 URI 发送请求。

虚成员的性能高于回调和事件,但是不比非虚方法高。

必要时才可使用虚成员,还应对设计、测试和维护虚成员所需的开销有所了解。

在不同版本之间更改虚成员的实现可能会导致不易察觉的版本不兼容。因此,正确设计和彻底测试虚成员的开销是很大的。

关于可访问性,首选使用受保护成员,而不是公共成员。公共成员应通过调用受保护虚成员提供扩展性(如果需要)。

不涉及继承的所有情况都需要使用的成员应该是公共的。

部分版权所有 2005 Microsoft Corporation。保留所有权利。

部分版权所有 Addison-Wesley Corporation。保留所有权利。

有关设计指南的更多信息,请参见 Krzysztof Cwalina 和 Brad Abrams 编著、Addison-Wesley 于 2005 年出版的“Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries”(《框架设计指南:可重用 .NET 库的约定、术语和模式》)。

请参见

其他资源

类库开发的设计准则

扩展性设计