2010-04-28 204 views
16

我遇到了一个非静态的类,但所有的方法和变量都是静态的。例如:为什么所有静态方法/变量都在非静态类中?

public class Class1 { 

    private static string String1 = "one"; 
    private static string String2 = "two"; 

    public static void PrintStrings(string str1, string str2) 
    { 
     ... 

所有变量在所有实例中都是静态的,所以没有必要具有单独的类实例。

是否有任何理由创建这样的类?

回答

5

编号使其成为一个静态类。

17

这个类是在.NET 1.x天写回来的吗?静态类直到C#2.0才出现。

+5

在我的经验中,即使使用.NET 2.0或更高版本,许多开发人员也忘记在这样的类上使用该关键字! – 2010-04-28 11:06:41

+1

哎呀,连Visual Studio都忘了!当您开始一个新的控制台应用程序时,请查看“Program”课程! – 2010-04-28 11:10:11

0

不,如果类中没有实例成员,那么它应该是静态的。

4

不。有些人没有意识到类本身可以是静态的,所以不要包含在类定义中。这很有用,因为它提供了更好的智能感知选项并确保将来的方法静态添加。

这也隐含地封闭了班级。

1

静态类提供:

  • 只包含静态成员。

  • 无法实例化。

  • 密封。

  • 不能包含实例构造函数。

因此,创建静态类基本上与创建仅包含静态成员和私有构造函数的类相同。

+0

它不能与“创建仅包含静态成员和私有构造函数的类”相同,因为这样的类需要实例化。静态类不会。 – CJ7 2010-04-28 13:01:55

+0

@克雷格你是对的。我更新了自己:) – Rajesh 2010-04-28 14:54:49

相关问题