How does the CLR handles static classes?

做~自己de王妃 提交于 2019-12-06 03:36:36
Sriram Sakthivel

First of all there is no static class in CLR. CLR doesn't know anything about static class. It is the feature of C#.

Static classes are compiled into abstract as well as sealed class. Making it abstract prevent instantiation of it and sealed prevents inheritance.

Static classes are no special, it is just a simple class with all members static.

Is, CLR internally creates one singleton instance for handling static classes?

No, it is abstract and can't be instantiated.

If not why we have an static constructor in C#?

Static constructor will be called when type is first referenced or instantiated. It is used to initialize the static members of the class.

When is a static constructor called in C#?

The static constructor is called when the type is first referenced. It doesn't have to be a static class to have a static constructor.

The CLR doesn't create a singleton instance of a static class. It does keep the static variables in memory though after they are initialized.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!