2016-02-26 6 views
6

Lassen Sie uns sagen, dass ich eine KlasseInstanziieren Sie eine Klasse, um eine Methode aufzurufen oder statische Methoden zu verwenden?

public class product 
{ 
    public string GetName() 
    { 
     return "product"; 
    } 

    public static string GetStaticName() 
    { 
     return "product"; 
    } 
} 

Diese Methoden das gleiche tun haben, aber man ist statisch und man ist es nicht.

Wenn ich diese Methode, die ich dies tun nennen:

product p = new product(); 
string _ProductName = p.GetName(); 

und

string _ProductName = product.GetStaticName(); 

Welche Methode die beste ist usw. für die Leistung zu benutzen?

+5

Anstatt sich um die Leistung auf dieser Ebene zu sorgen, konzentrieren Sie sich stattdessen auf semantische Korrektheit. Welche ist in Ihrem Modell am sinnvollsten? Verwende das. –

+1

Sie sollten .NET-Benennungs- und [Groß-/Kleinschreibung-Konventionen] (https://msdn.microsoft.com/library/ms229043 (v = vs.100) .aspx) folgen. Also zum Beispiel nicht "Klasse Produkt", sondern "Klasse Produkt". –

+0

@TimSchmelter Danke. –

Antwort

6

Welche Methode ist am besten für Leistung usw. zu verwenden?

Sie müssen hier keine Leistungsprobleme beheben. Sie müssen nur entscheiden, ob diese Methode für alle Instanzen der von Ihnen erstellten Objekte identisch sein soll. Wenn die Antwort ja ist, sollte es eine statische Methode sein. Andernfalls sollte es eine Instanzmethode sein. Es ist eine Designentscheidung, keine Leistungsentscheidung.

Übrigens, basierend auf Ihrem Code. Ich denke nicht, dass Sie in diesem Fall sogar das ansprechen müssen. Sie möchten nur den Namen des Produkts erhalten und wahrscheinlich festlegen. Davon abgesehen ist das Folgende das einzige, was Sie brauchen.

+0

Aber gibt es einen Unterschied in der Leistung, wie ich sie in meinem Beispiel nenne? Wenn es welche gibt? –

+0

Nein, überhaupt nicht. – Christos

+0

Vielen Dank für die Wiederholung! –

Verwandte Themen