Vollständige Version anzeigen : [.NET] C# 3.0 Feature - Extension Methods


q3mantis
13.11.2008, 19:57

Hallo Leute!

Hier mal eine kleine Übersicht über die neuen C# 3;0 Features. Die Sammlung die ich hier reinstelle mag zwar nicht komplett sein aber es sind sachen die ich täglich in der Arbeit häufig brauche.

1. Extension Methods

Finde ich sehr nützlich weil man bereits vorhandene Typen die im Framework schon vorhanden sind mit Methoden erweitern kann. "Die" Extension Method für mich ist die "IsNullOrTrimmedEmpty" für string

Beispiel


string _strName = null;

//Würde 'True' ausgeben:
Console;WriteLine(_strName;IsNullOrTrimmedEmpty());

Wie ihr seht kann man selbstgeschriebene Methoden auf bereits vorhandene Typen / Klassen anwenden. Die Methode wie im Codebeispiel gezeigt würde auf Null prüfen und anschließend wenn der string nicht null ist den string trimmen (alle Leerzeichen am Anfang und am Ende entfernen) und danach die Länge prüfen ob diese > 0 ist.

Hier mal das Komplette Beispiel mit anschließender Erklärung:



namespace System
{
public static class ExtensionMethods
{
public static bool IsNullOrTrimmedEmpty(this string strInputString)
{
if(strInputString != null)
return strInputString;Trim();Length;Equals(0);

return true;
}
}
}
Hier habe ich die statische Klasse "ExtensionMethods" in den Namespace "System" gepackt weil man keinen zusätzlichen Namespace benutzen muss wenn man die Methode aufrufen will.
Extension Methods müssen sich in statischen Klassen befinden, ebenso müssen die Methoden statisch sein. Der erste Parameter der Methode muss mit dem Schlüsselwort "this" gekennzeichnet sein. Wie ihr sehen könnt ist der erste Parameter vom Typ string also der Typ auf den die Extension Method angewendet werden kann. Würde die Methode so aussehen:

bool IsNullOrTrimmedEmpty(this int Input) { ... }
könnte sie nur auf Int-Variable angewendet werden.
Zum eigentlichen Verständnis was der Compiler macht ist nichts anderes also aus

_strMyVar;IsNullOrTrimmedEmpty()das hier:

IsNullOrTrimmedEmpty(_strMyVar)Es erleichtert unwahrscheinlich die Lesbarkeit und das auffinden von bereits vorhandenen Methoden für Framework (oder selbstgeschriebene) Typen.

Dies war nur ein kleiner Einblick in Extension Methods das genaue wie und warum habe ich mal weggelassen, aber wer es wissen möchte kann mir gerne schreiben. Ich empfehle jedem der mit C# 3;0 an einem etwas größerem Projekt arbeitet diese zu benutzen. Ich habe mir zum Beispiel ein kleines Projekt erstellt welches ich bei jedem Programm dass ich privat schreibe einbinde.. und schon habe ich meine gewohnten ExtensionMethods :)

Bis zum nächsten Tut

mfg
q3mantis

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Ähnliche Themen zu [.NET] C# 3.0 Feature - Extension Methods
  • MySQL Extension in PHP aktivieren
    Hi, habe Apache2 + PHP installiert und MySQL auch. Jetzt muss natürlich auch die MySQL Extension in der PHP;ini aktiviert werden. habe das also auskommentiert jetzt steht da sowas wie extension=mysql~so habe den Apache restartet, allerdings hat er die MySQL immernoch nicht drin: Fatal err [...]

  • Extension für Mozilla Firefox???
    (;portal;wikinerds~org/firefox-extensions) (;;;borngeek~com/firefox/tutorial/part_01;html) (;businesslogs~com/technology/firefox_extension_tutorial;php) [...]

  • Für Icq6 ein ICQ Status Extension?
    Hi RRs. Ich habe mittlerweile mal ICQ6 zugelegt. Ich würde jetzt aber gerne längere Aways schreiben. Für ICQ5;1 gibts ja das hier ICQ Status Extension 1;1 (;icq-tools~de/?s=tools&load=13). Wisst ihr obs sowas auch für ICQ6 gibt? Wenn ja wo? MfG H5N1 [...]

  • PnP Bios extension
    Moin Mein PC will immer eine PnP Bios Extension installieren. Auf der Microsoftseite findet er natürlich nichts. Ausserdem weiss ich nichtmal, was das ist? Braucht man das? [...]



raid-rush.ws | Imprint & Contact pr