您当前的位置: 首页 >  c#

Peter_Gao_

暂无认证

  • 1浏览

    0关注

    621博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C# 单例和静态类

Peter_Gao_ 发布时间:2022-01-30 15:25:37 ,浏览量:1

单例与静态类的相同作用

1.单例与静态类只能拥有一个实例,该实例在应用程序的整个周期中用于保持应用程序的全局状态。 2.单例和静态类都可以实现线程安全。

单例与静态类的区别?

需要记住的是, 静态是属于C#中的一种语言功能, 而单例是一种设计模式。所以两者属于不同的领域。 1.无法创建静态类的实例, 但是可以创建单个类的实例, 然后重用。 2.编译器编译静态类, 在内部静态类视为抽象和密封类。 3.单例的构造函数始终标记私有, 我们无法从单例类外部创建实例。 4.静态类是在应用程序第一次加载进行初始化, 而单例加载可以懒加载也可以由CLR自动加载。 5.静态类不能作为参数传递, 单例则可以作为参数传递。 6.静态类不能集成接口 7.单例的对象可以克隆, 静态类不行, 单例的对象可以释放,静态类不行。 8.无法使用静态类实现依赖注入,因为静态类不是接口驱动。 9.单例代表整个应用程序生命周期的单个对象, 属于应用程序级别, 而静态类没有任何对象指针, 属于应用域级别。

单例和静态类的内存管理

静态变量或者静态类不存储在堆栈的内存当中, 而堆栈的内从中存在一些称之为高频堆的特定控件, 其中存储静态类和静态变量。 该空间超出了垃圾收集器的范围, 所以, 内存只有在响应的进程或者AppDomain结束时才会被释放。

而单例类包含静态的应用, 所以垃圾回收器无法回收它, 并且仅仅在相应的进程或AppDomain结束时, 静态类和单例都会被销毁。

关注
打赏
1664521772
查看更多评论
立即登录/注册

微信扫码登录

0.0374s