Ich habe eine Klasse mit einer Sammlung von Methoden, und ich frage mich, ob es einen Leistungsbonus gibt, Methoden über Eigenschaften zu verwenden?
Einige der Methoden sind ziemlich komplex, geben aber im Grunde eine IEnumerable-Auflistung von Objekten zurück, während andere eine einfache return values.Where(x => x.property == "comparison")
Linq-Abfrage sind.
Beispiele
Methode
%Vor%Eigenschaft
%Vor%Wäre es besser, sie als Eigenschaften oder Methoden zu markieren?
Eigenschaften werden als Methoden unter der Haube implementiert, so dass es absolut keinen Leistungsunterschied gibt. Die Richtlinien zur Auswahl zwischen einer Eigenschaft und einer Methode sind semantisch. p>
Es gibt an sich keinen Leistungsunterschied, aber ich würde argumentieren, dass Benutzer Ihrer Klasse "einen" erwarten könnten. Das heißt, eine Eigenschaft wie "ActivePens" könnte als "leichter" empfunden werden als eine Methode wie "GetActivePens ()". Ich versuche Methoden zu schreiben, um Werte von teureren Dingen zu bekommen. Es ist sehr subjektiv.
Es kann auch Auswirkungen auf den Debugger geben - wenn Sie im Debugger auf eine Eigenschaft in einer Klasse klicken, wird diese Eigenschaft möglicherweise aufgerufen, und Sie müssen eine teure Operation ausführen, um den Tooltip anzuzeigen.