2009-06-26 17 views
9

Gibt es Overhead mit partiellen Klassen im Falle von Speicher, Leistung usw.?Verwenden von partiellen Klassen

Wenn wir eine partielle Klasse erstellen können wir identifizieren, ob die Klasse teilweise oder nicht mit Reflektor ??

Antwort

16

Nein. Sie werden in dieselbe IL kompiliert, als wären sie nicht partiell. Es ist eine reine Kompilierungszeit Sache - die CLR weiß nicht einmal, dass sie jemals teilweise waren.

Beachten Sie, dass mit partial methods in C# 3 eingeführt, wird das Verfahren nicht einmal in der IL emittiert erhalten, wenn sie in einer der Dateien implementiert ist. Sowohl die Aufrufe als auch die Deklaration werden vom Compiler entfernt.

Es ist möglich, dass es der Compiler einen unmerklichen Bruchteil einer Millisekunde verlangsamen werde, natürlich :)

+0

Wenn wir eine partielle Klasse erstellen können wir identifizieren, ob die Klasse teilweise oder nicht mit Reflektor ?? – rahul

+2

Teilweise ist ähnlich wie Leerzeichen, nur mit einem EOF beteiligt. Der Compiler analysiert es, aber danach gibt es keine Spur mehr. –

+1

@Phoenix: Nein. Die einzige Zeit, die Sie herausfinden könnten, wäre, wenn Sie Debug-Symbole zum Analysieren hätten und feststellen würden, dass ein Teil des Codes aus einer Datei stammt und einige aus einer anderen. –

3

Nein, alle Klassendateien werden zur Kompilierungszeit konsolidiert.

Hier ist die msdn article auf Teilarten.

Jede Quelldatei enthält einen Abschnitt der Typ- oder Methodendefinition, und alle Teile werden kombiniert, wenn die Anwendung kompiliert wird.

2

Nein, sie in einer Klasse zusammengefasst sind. Es ist eine reine Sprachfunktion.

Verwandte Themen