当前位置: 首页 > 编程语言 > C#

如何创建一个只能在C#中拥有单个实例的类分享

时间:2023-04-10 16:50:31 C#

C#学习教程:如何在C#中创建一个只能有单实例的类的类实例。听说过Singleton类,但是不知道怎么用。使用单例,这是一个只允许创建其自身的单个实例的类。publicsealedclassSingleton{publicstaticreadonlySingletoninstance=newSingleton();privateSingleton(){}}这种模式的操作非常简单,可以归纳为:隐藏Singleton类的构造函数,使其不会被client实例化。声明一个Singleton类私有成员变量,它包含对我们正在处理的唯一实例的引用。在类Singleton中提供一个函数或属性,该函数或属性提供对由Singleton实例维护的函数或属性的访问。您需要阅读我们自己的JonSkeet的博客(在C#中实现单例模式)。SingletomPattern的目的是“确保一个类只有一个实例并提供一个全局访问点”。这是你如何做的。publicsealedclassSingleton{privatestaticreadonlySingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletonInstance{get{returninstance;}}}这可以是单例实现的示例publicsealedclassCSingleTone{privatestaticCSingleToneinstance;publicintSomeValue{得到;放;}publicstaticCSingleToneInstance{get{if(instance==null)instance=newCSingleTone();返回实例;}}privateCSingleTone(){}}可以像这样使用intr=CSingleTone.Instance.SomeValue;单例不是一个类,而是一种模式。这是一个例子:classSingleton{privateSingleton(){}staticprivateSingletonGetIt(){returntheOne;}staticprivateSingletontheOne=newSingleton();}一种选择是只声明一个只包含静态成员的静态类。或者,您可以通过为类提供私有构造函数来实现单例模式:publicclassMySingleton{publicstaticreadonlyMySingletonInstance=newMySingleton();privateMySingleton(){}//Members...}这是一个单例类简单示例类Program{staticvoidMain(){SiteStructures=SiteStructure.Instance;}}publicsealedclassSiteStructure{staticreadonlySiteStructure_instance=newSiteStructure();publicstaticSiteStructureInstance{get{return_instance;}}SiteStructure(){//初始化。在这里,Readonly允许线程安全,这意味着它只能分配一次。它有一个公共静态吸气剂。调用者使用Instance属性获取单例实例。已知Sealed允许编译器在JIT编译期间执行特殊优化。上面的最终方法是私有实例构造函数和Initialize方法。私有构造函数意味着该类仅分配自身。以上就是C#学习教程的全部内容:如何在C#中创建一个只能有单实例的类。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: