Ich habe mich endlich mal mit den Extension Methods von C# auseinander gesetzt. Das ist ja um vieles einfacher als ich dachte
Hier mal ein kleines Beispiel, das den String Datentyp um eine Methode “ToInt32()” erweitert.
/// <summary>
/// Erweiterungsfunktionen für Strings
/// </summary>
public static class StringExtensions
{
/// <summary>
/// Wandelt einen String in eine Zahl um.
/// ExtensionMethod für den Datentyp "String"
/// </summary>
/// <param name="s">Erweiterter Datentyp</param>
/// <returns></returns>
public static int ToInt32(this string s)
{
int res;
// Umwandeln des String, sonst default zurück geben
if (int.TryParse(s, out res))
return res;
else
return default(int);
}
}
Die anschließende Verwendung ist denkbar einfach. Im IntelliSense des Visual Studio erscheint die Methode als ganz normale Methode der String Klasse. Diese kann wie jede andere Funktion z.B. “.ToString()” ausgewählt und benutzt werden.
class Program
{
static void Main(string[] args)
{
string aNumberAsString = Console.ReadLine();
Console.WriteLine("IsOdd: " + IsOdd(aNumberAsString.ToInt32()));
Console.WriteLine("IsEven: " + IsEven(aNumberAsString.ToInt32()));
Console.ReadKey();
}
public static bool IsEven(int number)
{
return (number % 2 == 0);
}
private static bool IsOdd(int number)
{
return (number % 2 == 1);
}
}

Kommentare
Kommentar hinterlassen Trackback