2016-02-26 10 views
6

Diciamo che ho una classeIstanziare una classe per chiamare un metodo o utilizzare metodi statici?

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

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

Questi metodi fanno la stessa cosa, ma uno è statico e non è.

quando chiamo questi metodo faccio questo:

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

e

string _ProductName = product.GetStaticName(); 

Quale metodo è il migliore da utilizzare per le prestazioni, ecc?

+5

Piuttosto che preoccuparsi delle prestazioni a questo livello, concentrarsi invece sulla correttezza semantica. Quale ha più senso nel tuo modello? Usalo. –

+1

È necessario seguire la denominazione .NET e le [convenzioni di capitalizzazione] (https://msdn.microsoft.com/library/ms229043 (v = vs.100) .aspx). Ad esempio, non "prodotto di classe" ma "prodotto di classe". –

+0

@TimSchmelter Grazie. –

risposta

6

Quale metodo è il migliore da utilizzare per le prestazioni ecc.?

Non si deve affrontare alcun problema di prestazioni qui. Devi solo decidere se questo metodo dovrebbe essere lo stesso per tutte le istanze degli oggetti che crei. Se la risposta è sì, allora dovrebbe essere un metodo statico. Altrimenti, dovrebbe essere un metodo di istanza. È una decisione di progettazione, non una decisione di prestazione.

A proposito, in base al codice. Non penso che in questo caso devi affrontare anche questo. Vuoi solo ottenere il nome del prodotto e probabilmente impostarlo. Detto questo, l'unica cosa di cui hai bisogno è la seguente.

public class Product 
{ 
    public string Name { get; set; } 
} 
+0

Ma c'è una differenza di prestazioni nel modo in cui li chiamo nel mio esempio? Se c'è, quale? –

+0

No, per niente. – Christos

+0

Grazie per il replay! –

Problemi correlati