关于c#中单例模式的一些问题

本文主要介绍了关于单例模式的一些问题,想学习C#单例模式的同学们可以看一看,还是有些帮助

c#中的单例模式

单例模式是指在设计一个类时,保证在运行期间只有一个实例对象,因为过多相同的实例对象会占用内存空间。

##举个例子

1.声明一个静态的Class1类的变量来引用唯一的对象。

2.创造私有的无参构造方法,使外部无法调用这个类的构造方法。

3.创建静态的方法,创建此类唯一的对象。

4.通过TempClass1 = new Class1();调用私有构造方法创建该实例。

#单例模式的一些特点

1.在类的内部创建一个该类的实例对象,并使用静态变量TempClass1引用该对象,田于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员。

2.类的构造方法使用 private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象。

3.为了 在类的外部能够获得类的实例对象,需要定义一个静态方法Class1Method(),用于返回该类实例TempClass1。

证明Class1只有一个实例对象

也就是说这两个变量是同时指向同一个对象的。

具体代码

private static Class1 TempClass1;
  private Class1() { }
  public static Class1 Class1Method() 
  {
   if (TempClass1 == null) 
   {
    TempClass1 = new Class1();
   }
   return TempClass1;
  }
 Class1 c1 = Class1.Class1Method();
   Class1 c2 = Class1.Class1Method();
   if(c1==c2)
   {
    Console.WriteLine("c1和c2的存储地址相同");
   }
   Console.ReadKey();

总结

到此这篇关于关于c#中单例模式的文章就介绍到这了,更多相关c#单例模式内容请搜索呐喊教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持呐喊教程!

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。