#1 13. November 2008 C# 3.0 Feature - Extension Methods 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 Code: 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: Code: 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: Code: 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 Code: _strMyVar.IsNullOrTrimmedEmpty() das hier: Code: 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 + Multi-Zitat Zitieren