2016-02-26 13 views
6

Powiedzmy mam klasyUtworzenie instancji klasy w celu wywołania metody lub użycia metod statycznych?

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

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

Metody te zrobić to samo, ale jedno jest statyczna i nie jest.

gdy zgłoszę to sposób to zrobić:

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

i

string _ProductName = product.GetStaticName(); 

Która metoda jest najlepsza użyć do wykonania itp?

+5

Zamiast martwić się o wydajność na tym poziomie, zamiast skupiać się na poprawności semantycznej. Który z nich ma największy sens w twoim modelu? Użyć tego. –

+1

Powinieneś postępować zgodnie z .NET nazewnictwem- i [konwencjami wielkich liter] (https://msdn.microsoft.com/library/ms229043 (v = vs.100) .aspx). Na przykład nie "produkt klasy", ale "produkt klasy". –

+0

@TimSchmelter Dzięki. –

Odpowiedz

6

Która z metod jest najlepsza dla wydajności itp.?

Nie musisz tutaj rozwiązywać problemów z wydajnością. Musisz tylko zdecydować, czy ta metoda powinna być taka sama dla wszystkich wystąpień tworzonych obiektów. Jeśli odpowiedź brzmi "tak", powinna to być metoda statyczna. W przeciwnym razie powinna to być metoda instancji. To decyzja projektowa, a nie decyzja o wydajności.

Przy okazji, na podstawie Twojego kodu. Nie sądzę, że w tym przypadku trzeba się zająć nawet tym. Chcesz tylko uzyskać nazwę produktu i prawdopodobnie go ustawić. Biorąc to pod uwagę, jest to jedyna rzecz, której potrzebujesz.

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

Ale czy jest różnica w wydajności w taki sposób, w jaki je nazywam w moim przykładzie? Jeśli tak, to który? –

+0

Nie, wcale. – Christos

+0

Dziękuję za powtórkę! –

Powiązane problemy