什么是更好的:公共静态类与静态方法或公共类与静态方法?
关于班公类的声明,请看看这两段代码:什么是更好的:公共静态类与静态方法或公共类与静态方法?
public class Helper
{
public static void CallMeganFox(string phoneNumber)
{ //...
和
public static class Helper
{
public static void CallMeganFox(string phoneNumber)
{ //...
什么是更好地使用,为什么?
这是在说“好”,使之明确,这个类是不应该通过使它static
(第二个选项)被实例化,因为它传达意图¹。
然而,在这样一个简单的情况下,从实际角度来看,它们之间确实存在零差异²。没有人会去看这个班,并尝试实例化它。
¹正如Cody Gray所指出的那样,它也可以帮助您在早期发现错误(例如,忘记制作帮助方法static
)。虽然这个观点当然有其优点,但实际差异将会微乎其微:只要您尝试在任何情况下静态调用该方法,编译器就会抱怨。
²事实上,情况并非总是如此。例如,C#编译器不会让您在非static
类中定义扩展方法 - 不是因为它不能,而是因为它想要将您推向“最佳实践”。
同意;它不仅传达意图,而且防止错误(例如忘记声明一个新添加的函数static)。 – 2012-01-14 15:34:00
@CodyGray:相应地更新了答案,谢谢。 – Jon 2012-01-14 15:39:58
[决定做一个C#类静态]可能的重复(http://stackoverflow.com/questions/7660094/deciding-to-make-a-c-sharp-class-static) – 2012-01-14 16:18:15