coding.roecher.de

.net and c#
  • rss
  • Home
  • About
  • Impressum

C# 3.0 – Partial Methoden

mario | 3. February 2008

Partielle Methoden sind Hooks die Klassen Designer bereitstellen. Entwickler können diese gegebenenfalls implementieren. Wird die Methode nicht vom Entwickler implementiert entfernt der Compiler die Signatur. Partielle Methoden müssen folgende Bedingungen erfüllen:

  • Partielle Methoden müssen in partiellen Typen implementiert werden.
  • Die Methode muss void als Rückgabetyp verwenden.
  • Es sind keine Modifizierer oder Attribute zulässig.

Partielle Methoden eignen sich hervorragend für automatisiert erzeugten Code.

Der automatisiert erzeugte Code:

   1:      public partial class Person
   2:      {
   3:          private string firstname;
   4:          public string Firstname
   5:          {
   6:              get { return firstname; }
   7:              set 
   8:              {
   9:                  //Partial Method
  10:                  OnBeforeFirstnameChange(value);
  11:   
  12:                  firstname = value;
  13:                  //Partial Method
  14:                  OnAfterFirstnameChange(firstname);
  15:              }
  16:          }
  17:   
  18:          partial void OnBeforeFirstnameChange(string name);
  19:          partial void OnAfterFirstnameChange(string name);
  20:      }

Wenn wir als Entwickler die beiden Methoden OnBeforeFirstnameChange und OnAfterFirstnameChange nicht gesondert implementieren wird uns der Compiler die Signaturen entfernen. Kontrollieren kann man dies mit einem Reflector wie z.B. mit Lutz Roeder’s Reflector.

clip_image001

Im nächsten Schritt implementieren wir die partielle Methode OnBeforeFirstnameChange.

   1:      public partial class  Person
   2:      {
   3:          partial void OnBeforeFirstnameChange(string name)
   4:          {
   5:              Debug.WriteLine("Firstname: " + name);
   6:          }
   7:      }

Anschließend kompilieren wir den Code erneut und betrachten das Ergebnis im Reflector.

clip_image001[7]

Wie erwartet ist nur die Signatur für die Methode OnAfterFirstnameChange entfernt worden.

Comments
No Comments »
Categories
.NET, c#
Tags
c# 3.0, Partial Methode
Comments rss Comments rss
Trackback Trackback

Me

TechEd 2009 Berlin

Twitter Updates

Twitter Updates

    follow me on Twitter
    Mario Roecher

    Pages

    • About
    • Impressum

    Recent Posts

    • Die Bahn, Verspätungen, Zugausfälle und die Auswirkungen auf mein OpenSource Projekt
    • Visual Studio 2010 Release Candidate und Entity Framework POCO Template aus Beta 2
    • ExpectedException Attribute und MSTest mit AAA Syntax
    • Could not find stored procedure ‘System.Activities.DurableInstancing.CreateLockOwner’.
    • Login failed for user ‘IIS APPPOOL\DefaultAppPool’.

     

    March 2010
    M T W T F S S
    « Feb    
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  

    Tags

    .NET 4.0 .NET Open Space ADO.NET Assembly Bahn c# c# 3.0 Composite Application Composite Application Guidance Composite Applications DNUG EF Expression Extension Methods External Tool IM Control Koblenz Live Translator Messenger MSTest OpenSource Oracle OracleClient Parallel Computing Partial Methode PDC 2008 Prism Public Key Token Rhino Mocks Silverlight sn.exe UGSSK Unit Test Unit Test Framework Unity Application Block Verspätung Visual Studio WCF WF Windows 7 Windows Live Windows Server AppFabric WPF Zugausfall

    Recent Comments

    • Marvin on Auslesen des PublicKeyToken aus .NET Assemblys
    • coding.roecher.de» Juli Treffen der .NET User Group Koblenz on Gestern bei der DNUG in Koblenz
    • mario on Gestern bei der DNUG in Koblenz
    Locations of visitors to this page

    Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org
    rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox