2013-10-18 133 views
0

创建静态类的实例据可以声明为static的MSDN为什么我们不能在.net

,A级,表明它仅包含 静态成员。这是不可能的创建使用新关键字的静态 类的实例。静态类由当包含类的程序 或命名空间被加载的.NET Framework公共语言运行时(CLR)自动 加载。

对它做了一些研究之后,我发现静态类不包含实例构造函数。我不明白为什么静态类不包含实例构造函数以及static关键字的用途。为什么.Net不允许我们创建一个静态类的实例?

+8

静态类的非常定义是,你不能初始化它设置类只有一个实例。你想知道为什么存在静态类吗?或者该机制如何阻止它们从实例化中运行?类上的'static'只是一个标志,表示“你不能实例化”。 – CodesInChaos

+1

如果以上情况,请查看http://stackoverflow.com/questions/2227793/why-are-static-classes-used/2227814和http://stackoverflow.com/questions/241339/when-to- use-static-classes-in-c-sharp – Warty

+0

我使用静态类作为链式编程的灵魂目的,就像使用jQuery一样。 'MyStaticClass.StaticMethod1.StaticProperty1' – diceler

回答

5

静态类不包含任何实例成员属性或函数。所以让一个实例变得毫无意义。

静态类用于包含在整个程序中具有相同效果的变量,属性和函数。

例如,您可以有一个“设置”类。

它具有所有静态属性。

当它被访问时(通过静态构造函数) 如果找不到该文件,自动从磁盘加载设置文件或重置为默认设置。

现在

来自全国各地的程序,您可以通过只调用

  • Settings.ScreenSize访问该类
  • Settings.RootPath

你甚至可以创建一个功能

  • Settings.Save()将设置保存到磁盘供下次使用。
  • Settings.Reset()恢复默认设置。

这样做的好处是您的所有设置将被分组到一个位置,并且您的设置的所有逻辑都被放置在一个位置。你总是会知道,有无论你叫它

我希望这有助于

+1

静态类也是在多线程环境中存储常用信息的简单方法。 – aikixd

相关问题