2016-02-26 22 views
6

Hãy nói rằng tôi có một lớpKhởi tạo một lớp để gọi một phương thức hoặc sử dụng các phương thức tĩnh?

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

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

Những phương pháp làm điều tương tự nhưng một là tĩnh và một không.

Khi tôi gọi đó là các phương pháp tôi làm điều này:

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

string _ProductName = product.GetStaticName(); 

Những phương pháp là tốt nhất để sử dụng cho hiệu suất vv?

+5

Thay vì lo lắng về hiệu suất ở cấp độ này, thay vào đó tập trung vào tính chính xác ngữ nghĩa. Cái nào có ý nghĩa nhất trong mô hình của bạn? Dùng nó. –

+1

Bạn nên thực hiện theo cách đặt tên .NET và [quy ước viết hoa] (https://msdn.microsoft.com/library/ms229043 (v = vs.100) .aspx). Vì vậy, ví dụ, không phải 'sản phẩm lớp' nhưng' sản phẩm lớp '. –

+0

@TimSchmelter Cảm ơn. –

Trả lời

6

Phương pháp nào là tốt nhất để sử dụng cho hiệu suất v.v ...?

Bạn chưa giải quyết bất kỳ vấn đề về hiệu suất nào tại đây. Bạn chỉ cần quyết định xem phương pháp này có nên giống nhau cho tất cả các trường hợp của các đối tượng bạn tạo ra hay không. Nếu câu trả lời là có, thì nó phải là một phương pháp tĩnh. Nếu không, nó phải là một phương thức thể hiện. Đó là một quyết định thiết kế, chứ không phải quyết định về hiệu suất.

Nhân tiện, dựa trên mã của bạn. Tôi không nghĩ rằng trong trường hợp này, bạn phải giải quyết ngay cả điều đó. Bạn chỉ muốn lấy tên của sản phẩm và có thể đặt nó. Điều đó đang được nói sau đây là điều duy nhất bạn cần.

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

Nhưng có sự khác biệt về hiệu suất theo cách tôi gọi chúng trong ví dụ của tôi không? Nếu có, cái nào? –

+0

Không, không hề. – Christos

+0

Cảm ơn bạn đã chơi lại! –

Các vấn đề liên quan