Blog Home  Home RSS 2.0 Atom 1.0 CDF  
Andreas Mersch - C# 3.0: Extension Methods
software development and more...
 
 Wednesday, December 19, 2007

Mit C# 3.0 ist es möglich, Klassen von außen mit "Extension Methods" zu erweitern, ohne von der entsprechenden Klasse ableiten zu müssen. Dies ist von Vorteil, wenn man den ursprünglichen Datentyp (die ursprüngliche Klasse) beibehalten (Instanz i ist weiterhin vom Typ t), sealed oder Fremd-Klassen erweitern, oder unabhängig bei zukünftigen Weiterentwicklungen sein möchte... Die Erweiterungen werden im Quellcode verwendet, als gehören sie zu der jeweiligen Klasse. Im Visual Studio 2008 werden Extension Methods von IntelliSence durch den Hinweis "(extension)" gekennzeichnet.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _002_MethodExtensions
{
   
   
public static class MyStringExtension
   
{
      
public static string Reverse(this string s)
      {
         
if (s == null || s.Length == 0)
            
return s;

         
StringBuilder sb = new StringBuilder();
         for (var i = s.Length; i != 0; --i) 
         {
            sb.Append(s[i - 1]);
         }

         
return sb.ToString();
      }
   }

   class Program
   {
      static void Main(string[] args)
      {
         
string hello = "Hello World";
         
Console.WriteLine("{0} --> {1}", hello, hello.Reverse());
      }
   }

}

12/19/2007 12:42:12 PM (Mitteleuropäische Zeit , UTC+01:00)  #    Comments [0]   C#  |  Trackback
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Copyright © 2010 andreas mersch. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: