Angenommen, Sie haben eine Methode, die in einer nicht statischen Klasse statisch gemacht werden könnte.
Zum Beispiel:Statische und nicht statische Methode
private double power(double a, double b)
{
return (Math.Pow(a, b));
}
Sehen Sie einen Nutzen aus der Methodensignatur in statisch zu ändern? In dem obigen Beispiel:
private static double power(double a, double b)
{
return (Math.Pow(a, b));
}
Auch wenn es einige Performance oder Speicher Verstärkung ist, wäre nicht der Compiler tut es als eine einfache Optimierung in der Kompilierung?
Bearbeiten: Was ich suchen, sind die Vorteile durch die Erklärung der Methode als statisch. I wissen, dass dies die gängige Praxis ist. Ich würde gern die Logik dahinter verstehen.
Und natürlich ist diese Methode nur ein Beispiel, um meine Absicht zu verdeutlichen.
@Everyone, ich weiß, das ist eine "alte" Frage in den Entwicklungsjahren, aber es ist noch heute relevant. Viele ** ausgezeichnete ** Antworten unten. Benötigen Sie tatsächliche Leistungszahlen für Ihr spezifisches Szenario? Schreiben Sie ein schnelles Programm, das die Methode oft aufruft (zwischen 'var start = DateTime.Now()' und 'var end = DateTime.Now()'), um eine verstrichene Zeit zu haben, die groß genug ist, um zu vergleichen. Führen Sie es ein paar Mal mit "statisch" und ein paar Mal ohne "statisch" aus und vergleichen Sie den Unterschied. Öffnen Sie vielleicht den TaskManager und beobachten Sie auch die Speichernutzung für jedes Szenario. –
Nur zur Vollständigkeit, anstatt den Unterschied zwischen den beiden 'DateTime.Now()' zu vergleichen, verwenden Sie die ['StopWatch'-Klasse] (https://msdn.microsoft.com/en-us/library/system.diagnostics. Stoppuhr (v = vs.110) .aspx). BEARBEITEN - Warum? Es ist genauer und einfacher zu verwenden als der 'DateTime.Now()' Weg. –