Freigeben über


Erweiterungsmethodenunterstützung

In .NET Framework 3.5 wird die Verwendung von Erweiterungsmethoden jetzt vom Windows Workflow Foundation-Regelframework unterstützt. Bei Erweiterungsmethoden handelt es sich um statische Methoden, die mit der Instanzmethodensyntax aufgerufen werden können. Tatsächlich wird durch Erweiterungsmethoden die Erweiterung vorhandener und konstruierter Typen mit zusätzlichen Methoden ermöglicht.

Erweiterungsmethoden werden deklariert, indem das Stichwort this als Modifizierer am ersten Parameter der Methoden angegeben wird. Erweiterungsmethoden können nur in statischen Klassen deklariert werden. Es folgt ein Beispiel einer statischen Klasse, durch die eine Erweiterungsmethode deklariert wird:

public static class Extensions
{ 
    public static int ToInt32(this string s) 
    { 
        return Int32.Parse(s); 
    } 
} 

Im folgenden Codebeispiel wird das Hinzufügen neuer Funktionen zu vorhandenen Typen durch Erweiterungsmethoden veranschaulicht. In diesem Fall wurde die Erweiterungsmethode ToInt32 in einer statischen Extensions-Klasse definiert und von einer Instanz der String-Klasse aufgerufen.

string s = "123";
int i = s.ToInt32();

Für das WF-Regelframework erfolgt die Prüfung für Erweiterungsmethoden zur Kompilierungszeit. Wurde die Erweiterungsmethode in Ihrer Lösung nicht in einer statischen Klasse definiert, werden alle Assemblys, auf die verwiesen wird und die in Ihrer Lösung aufgelistet sind, vom Validierungssteuerelement durchsucht, um den Erweiterungsmethodenaufruf aufzulösen.

Hinweis

Falls Sie Code verwenden möchten, der auf dieser Funktion mit .NET Framework 3.0 beruht, wird ein Prüfungsfehler zurückgegeben, weil die aufgerufene Methode in dieser Klasse nicht definiert ist.

Weitere Informationen zu Erweiterungsmethoden finden Sie in Version 3.0 der C#-Spezifikationen (möglicherweise in englischer Sprache).

Siehe auch

Weitere Ressourcen

Regeländerungen in .NET Framework 3.5

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.