为什么我们不能在.Net中创建静态类的实例

时间:2013-10-18 07:38:16

标签: c# .net static

根据MSDN

  

一个类可以声明为static,表示它只包含   静态成员。无法创建静态实例   使用new关键字的类。静态类会自动加载   由.NET Framework公共语言运行时(CLR)程序时   或者加载包含该类的命名空间。

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

2 个答案:

答案 0 :(得分:7)

静态类不包含任何实例成员属性或函数。因此,制作一个实例毫无意义。

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

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

具有所有静态属性。

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

现在你可以从你的整个程序中调用

来访问这个类
  • Settings.ScreenSize
  • Settings.RootPath

您甚至可以创建一个功能

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

这样做的好处是,您的所有设置都会分组到一个位置,并且您设置的所有逻辑都放在一个位置。您将始终知道,无论您在何处调用它,只有一个设置类的实例

我希望这会有所帮助

答案 1 :(得分:2)

当我们将类设为静态时,Compiler保证不能创建此类的实例(静态类)。因此这些方法与代码中类的特定对象无关。

静态类不能包含实例构造函数,但可以包含不带访问修饰符的静态构造函数。 在创建第一个实例之前,将自动调用静态构造函数来初始化类。

静态类是密封类,因此不能继承。

您可以使用类型名称而不是引用来访问静态成员。