Tôi đã thường xuyên suy nghĩ về điều này ... nó có thể là một câu hỏi ngốc nghếch nhưng ở đây đi.Tôi có nên luôn làm cho phương pháp của mình tĩnh khi có thể không?
Nói rằng tôi có lớp học này:
public class SomeClass
{
public int AProperty { get; set; }
public void SomeMethod()
{
DoStuff(AProperty);
}
}
Có lợi thế nào để làm điều này:
public class SomeClass
{
public int AProperty { get; set; }
public static void SomeMethod(int arg)
{
DoStuff(arg);
}
}
Ưu điểm duy nhất mà là rõ ràng là bây giờ tôi có thể truy cập trực tiếp SomeMethod
.
Vì vậy, có thực tiễn tốt để làm cho các loại phương pháp này tĩnh, nơi một phép tái cấu trúc nhỏ sẽ cho phép hoặc lãng phí thời gian của tôi không?
EDIT: tôi quên đề cập đến (và comment ShellShock của nhắc nhở tôi) rằng lý do tôi hỏi là tôi sử dụng ReSharper và nó luôn luôn làm cho ý kiến cho rằng 'Phương pháp X có thể được thực hiện tĩnh' và vân vân ...
có thể trùng lặp của [Phương pháp tĩnh so với phương pháp không tĩnh] (http://stackoverflow.com/questions/1184701/static-vs-non-static-method) –
Nếu phương pháp không yêu cầu dữ liệu cụ thể về cá thể bạn có thể làm cho nó tĩnh. – halfdan
Tôi biết halfdan, nhưng tôi hỏi - Tôi có nên không? – Nobody