2

根据 MSDN

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

经过一番研究,我发现静态类不包含实例构造函数。我不明白为什么静态类不包含实例构造函数以及 static 关键字的用途。为什么.Net 不允许我们创建静态类的实例?

4

2 回答 2

8

静态类不包含任何实例成员属性或函数。所以做一个实例是没有意义的。

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

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

这具有所有静态属性。

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

现在从你的程序中你可以通过调用来访问这个类

  • Settings.ScreenSize
  • Settings.RootPath

你甚至可以创建一个函数

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

这样做的好处是您的所有设置都将集中在一个位置,并且您的设置的所有逻辑都放在一个位置。您将始终知道,无论您在哪里调用设置类,都只有一个实例

我希望这有帮助

于 2013-10-18T07:55:55.843 回答
2

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

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

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

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

于 2018-06-30T20:02:48.393 回答