Affe, der in C # patcht

9

Ist es möglich, den Code einer C # -Klasse zur Laufzeit zu erweitern oder zu modifizieren?

Meine Frage dreht sich speziell um Monkey Patching / Duck Punching oder Meta Object Programming (MOP), wie es in Skriptsprachen wie Groovy, Ruby etc. vorkommt.

    
humblecoder 27.12.2010, 10:20
quelle

3 Antworten

7
  

Ist es möglich, den Code einer C # -Klasse zur Laufzeit zu erweitern oder zu ändern?

Nein, dies ist in .NET nicht möglich. Sie könnten abgeleitete Klassen schreiben und Methoden überschreiben (wenn sie virtuell sind), aber Sie können eine vorhandene Klasse nicht ändern . Stellen Sie sich vor, Sie könnten das Verhalten einiger vorhandener Systemklassen wie System.String ändern.

Sie können sich auch Erweiterungsmethoden ansehen, um einer vorhandenen Klasse Funktionen hinzuzufügen.

    
Darin Dimitrov 27.12.2010, 10:21
quelle
3

Sie können Funktionen hinzufügen hinzufügen, aber Sie können Funktionen nicht ändern oder entfernen.

    
Jeff Hubbard 27.12.2010 10:25
quelle
2

Sie können Klassen erweitern, indem Sie zusätzliche Methoden hinzufügen, aber Sie können sie nicht überschreiben, da hinzugefügte Methoden immer eine niedrigere Priorität als die vorhandenen haben.

Weitere Informationen finden Sie Erweiterungsmethoden im C # -Programmierhandbuch.

    
plaes 27.12.2010 10:30
quelle

Tags und Links