Freigeben über


Virtuelle Member

Aktualisiert: November 2007

Ein virtual-Member (Overridable in Visual Basic) ermöglicht es Ihnen, das Verhalten eines Members zu ändern, indem Sie eine andere Implementierung des Members bereitstellen. Diese Member werden normalerweise verwendet, wenn Sie eine abgeleitete Klasse des Typs zum Behandeln der Besonderheiten eines bestimmten Szenarios benötigen. Beispielsweise definiert die WebRequest-Klasse Funktionalität zum Senden einer Anforderung an einen beliebigen URI (Universal Resource Identifier). Die FtpWebRequest-Klasse ist eine abgeleitete Klasse von WebRequest, die ihre virtuellen Methoden überschreibt, um das Senden von Anforderungen an URIs zu behandeln, die das FTP (File Transfer Protocol)-Schema verwenden.

Virtuelle Member weisen eine bessere Leistung als Rückrufe und Ereignisse, doch keine bessere Leistung als nicht virtuelle Methoden auf.

Legen Sie Member nur als virtuelle Member fest, wenn dies erforderlich ist und Sie sich des gesamten Aufwands für den Entwurf, das Testen und Verwalten virtueller Member bewusst sind.

Das Ändern der Implementierung eines virtuellen Members zwischen Versionen kann geringfügige Inkompatibilitäten verursachen. Aus diesem Grund ist der ordnungsgemäße Entwurf und das gründliche Testen virtueller Methoden mit sehr hohem Aufwand verbunden.

Verwenden Sie für virtuelle Member bevorzugt geschützten Zugriff statt öffentlichen Zugriffs. Öffentliche Member sollten ggf. Erweiterbarkeit bereitstellen, indem sie einen geschützten virtuellen Member aufrufen.

Member, die für alle Szenarien benötigt werden, die keine Vererbung umfassen, sollten öffentlich sein.

Copyright für einzelne Teile 2005 Microsoft Corporation. Alle Rechte vorbehalten.

Copyright für einzelne Teile Addison-Wesley Corporation. Alle Rechte vorbehalten.

Weitere Informationen zu Entwurfsrichtlinien finden Sie im Buch "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" von Krzysztof Cwalina und Brad Abrams, veröffentlicht von Addison-Wesley, 2005.

Siehe auch

Weitere Ressourcen

Entwurfsrichtlinien zum Entwickeln von Klassenbibliotheken

Entwerfen für Erweiterbarkeit