Lassen Sie sich nicht von TypeX mitreißen, indem ich sage, dass ich diese Methoden lieber in TypeX als in der Extension definieren soll. Ich habe keine Kontrolle darüber (die tatsächliche Klasse I hat es auf SPListItem definiert.
Ich wollte den TypeX zu Int oder Boolean konvertieren und diese Operation ist eine häufige Sache, die ich in vielen Orten im Code mache. Ich wollte wissen, wird dies die Leistung verschlechtern. Ich habe versucht, IL-Code mit Reflektor zu interpretieren, aber bin nicht gut darin. Möglicherweise wird für das obige Beispiel keine Leistungseinbußen auftreten. Im Allgemeinen wollte ich über die Implikationen in Bezug auf die Leistung wissen, während die Erweiterungsmethoden verwendet werden.
Erweiterungsmethoden sind nur eine Kompilierzeitänderung von:
%Vor%bis
%Vor%Das ist alles, was dazugehört - übersetzen, was wie ein Aufruf einer Instanzmethode aussieht, in einen Aufruf einer statischen Methode.
Wenn Sie bei der statischen Methode keine Leistungsprobleme haben, führt das Hinzufügen einer Erweiterungsmethode zu keinen neuen Problemen.
BEARBEITEN: IL, wie gewünscht ...
Nehmen Sie dieses Beispiel:
%Vor% Hier ist die IL für Extension
und Normal
:
Wie Sie sehen können, sind sie genau gleich.
Extension-Methoden sind nur Compiler Voodoo, also haben sie alle Leistungseinflüsse der normalen Methoden zur Laufzeit.
Im schlimmsten Fall haben Sie einen zusätzlichen Funktionsanruf. Im Ernst, ich würde hoffen, dass es in der Lage sein sollte, diesen Code so einfach wie möglich zu inline zu schreiben und keinen spürbaren Effekt zu haben.