In C# kann man keine Typen erben oder erweitern, die mit der Zugriffsmarkierung „sealed“ versehen sind. In der Version 3.0 kann der Entwickler beliebige Klassen erweitern – selbst Klassen, die als „sealed“ markiert sind. Wenn man etwa der String-Klasse eine Methode NoSpaces() hinzufügen wollte, könnte man eine Erweiterungsmethode wie in Listing A definieren.
Listing A:
Wenn diese Erweiterungsmethode in eine Klasse importiert wird, können Entwickler die Methode NoSpaces() für jeden in der Klasse enthaltenen String aufrufen.
Der erste Parameter der Erweiterungsmethode legt fest, für welche Typen die Erweiterungsmethode zur Verfügung steht. In diesem Fall weist „this string data“ darauf hin, dass die Erweiterungsmethode auf die String-Klasse angewandt werden soll. Falls die Erweiterungsmethode mit „this object data“ deklariert werden würde, stünde die Methode für jedes Objekt zur Verfügung.
Um anzugeben, dass Erweiterungsmethoden importieret werden sollen, muss einfach eine using-Anweisung für deren Namensraum eingefügt werden. Soll zum Beispiel die oben beschriebene Methode verwendet werden, ist die Anweisung using MyExtensionMethods in der Klassendatei erforderlich (Listing B).
Listing B:
Zu beachten ist, dass Erweiterungsmethoden Instanzmethoden nachgeordnet sind. Sollte also eine Instanzmethode mit derselben Signatur wie eine Erweiterungsmethode vorhanden sein, wird die Instanzmethode ausgeführt.
Seine Trainingsdaten umfassen 3,8 Milliarden Parameter. Laut Microsoft bietet es eine ähnliche Leistung wie OpenAIs…
Sie erlaubt eine Remotecodeausführung außerhalb der Sandbox. Betroffen sind Chrome für Windows, macOS und Linux.
Probleme treten vor allem bei Nutzern von Outlook Web Access auf. Das optionale Hotfix-Update für…
Die Einladung zeigt einen zeichnenden Apple Pencil. Der wiederum deutet auf neue iPads hin. Es…
Die Richtlinie erhält 584 Ja-Stimmen und 3 Gegenstimmen. Das „Recht auf Reparatur“ beinhaltet unter bestimmten…
Die Tests basieren auf tatsächlich existierenden Sicherheitslücken. GPT-4 erreicht eine Erfolgsquote von 87 Prozent. Alle…