Überladen von MembernMember Overloading

Überladen von Membern bedeutet das Erstellen von zwei oder mehr Elemente für den gleichen Typ, die denselben Namen aufweisen, unterscheiden sich nur hinsichtlich der Anzahl oder dem Typ der Parameter.Member overloading means creating two or more members on the same type that differ only in the number or type of parameters but have the same name. Im folgenden wird beispielsweise der WriteLine -Methode ist überladen:For example, in the following, the WriteLine method is overloaded:

public static class Console {  
    public void WriteLine();  
    public void WriteLine(string value);  
    public void WriteLine(bool value);  
    ...  
}  

Da nur Methoden, Konstruktoren und indizierte Eigenschaften über Parameter verfügen können, können nur für die Elemente überladen werden.Because only methods, constructors, and indexed properties can have parameters, only those members can be overloaded.

Überladen ist eine der wichtigsten Methoden zur Verbesserung der Nutzbarkeit und Produktivität und Lesbarkeit wieder verwendbare Bibliotheken.Overloading is one of the most important techniques for improving usability, productivity, and readability of reusable libraries. Auf der Anzahl von Parametern überladen ermöglicht die einfachere Versionen von Konstruktoren und Methoden bereitstellen.Overloading on the number of parameters makes it possible to provide simpler versions of constructors and methods. Überladen für den Parametertyp erleichtert möglich, demselben Membernamen für Elemente, die identische Vorgänge für eine ausgewählte Gruppe von verschiedenen Typen zu verwenden.Overloading on the parameter type makes it possible to use the same member name for members performing identical operations on a selected set of different types.

Führen Sie ✓ versuchen, beschreibende Parameternamen zu verwenden, um anzugeben, die Standardeinstellung von kürzeren Überladungen verwendet.✓ DO try to use descriptive parameter names to indicate the default used by shorter overloads.

X vermeiden nach dem Zufallsprinzip varying Parameternamen in Überladungen.X AVOID arbitrarily varying parameter names in overloads. Wenn ein Parameter in einer Überladung dieselbe Eingabe als Parameter in einer anderen Überladung darstellt, sollte der Parameter denselben Namen aufweisen.If a parameter in one overload represents the same input as a parameter in another overload, the parameters should have the same name.

X vermeiden Mitglieder überlastet werden in der Reihenfolge der Parameter in inkonsistent.X AVOID being inconsistent in the ordering of parameters in overloaded members. Parameter mit dem gleichen Namen sollte in der gleichen Position alle Überladungen angezeigt werden.Parameters with the same name should appear in the same position in all overloads.

Führen Sie ✓ stellen nur die längste Überladung virtuellen (wenn Erweiterbarkeit erforderlich ist).✓ DO make only the longest overload virtual (if extensibility is required). Kürzere Überladungen sollten einfach über eine längere Überladung aufrufen.Shorter overloads should simply call through to a longer overload.

X nicht verwenden ref oder out Modifizierer zum Überladen von Membern.X DO NOT use ref or out modifiers to overload members.

Für einige Sprachen nicht aufrufen an Überladungen wie folgt aufgelöst werden.Some languages cannot resolve calls to overloads like this. Darüber hinaus sollte solche Überladungen wurden in der Regel vollständig unterschiedliche Semantiken wahrscheinlich auch nicht Überladungen jedoch zwei separate Methoden stattdessen.In addition, such overloads usually have completely different semantics and probably should not be overloads but two separate methods instead.

X nicht Überladungen mit Parametern, die an der gleichen Position und ähnliche Typen noch mit einer anderen Semantik haben.X DO NOT have overloads with parameters at the same position and similar types yet with different semantics.

Führen Sie ✓ zulassen null für optionale Argumente übergeben werden soll.✓ DO allow null to be passed for optional arguments.

Führen Sie ✓ verwenden Member überladen, anstatt Elemente mit Standardargumenten definieren.✓ DO use member overloading rather than defining members with default arguments.

Standardargumente sind nicht CLS-kompatibel.Default arguments are not CLS compliant.

Teilen © 2005, 2009 Microsoft Corporation. Alle Rechte vorbehalten.Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

Nachdruck mit Genehmigung von Pearson-Education, Inc. aus Framework-Entwurfsrichtlinien: Konventionen, Idiome und Muster für Wiederverwendbaren .NET-Bibliotheken, 2nd Edition Krzysztof Cwalina und Brad Abrams veröffentlicht 22 Oktober 2008 durch Addison Wesley Professional als Teil der Microsoft Windows-Entwicklung Reihe.Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.

Siehe auchSee Also

Entwurfsrichtlinien für MemberMember Design Guidelines
FrameworkentwurfsrichtlinienFramework Design Guidelines