服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - 关于c#中单例模式的一些问题

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

2022-10-14 12:06码农.拉格朗日 C#

这篇文章主要给大家介绍了关于c#中单例模式的一些问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

c#中的单例模式

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

##举个例子

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

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

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

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

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

#单例模式的一些特点

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

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

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

证明Class1只有一个实例对象

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

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

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

具体代码

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#单例模式内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_45681515/article/details/109582835

延伸 · 阅读

精彩推荐
  • C#ActiveMQ在C#中的应用示例分析

    ActiveMQ在C#中的应用示例分析

    这篇文章主要介绍了ActiveMQ在C#中的应用,简单介绍了ActiveMQ的功能、下载及在C#中的具体使用方法,需要的朋友可以参考下...

    wolfman5272021-11-30
  • C#C#图片处理3种高级应用

    C#图片处理3种高级应用

    本文介绍C#图片处理高级应用,这些功能并无多大技术含量。全部基于.Net Framework类库完成,代码中包含了C#图片处理的一些基础知识,与大家分享,个人能...

    吴剑11422021-10-29
  • C#C#自定义基于控制台的Timer实例

    C#自定义基于控制台的Timer实例

    这篇文章主要介绍了C#自定义基于控制台的Timer实现方法,可以简单模拟timer控件的相关功能,具有一定参考借鉴价值,需要的朋友可以参考下...

    北风其凉9782021-10-19
  • C#在WPF中动态加载XAML中的控件实例代码

    在WPF中动态加载XAML中的控件实例代码

    这篇文章主要介绍了在WPF中动态加载XAML中的控件,实例分析了WPF中针对XAML中控件的动态调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    kagula10942021-11-30
  • C#C#异步编程详解

    C#异步编程详解

    本文主要介绍异步编程中Task、Async和Await的基础知识。具有很好的参考价值,下面跟着小编一起来看下吧...

    东秦男人5792021-12-23
  • C#C# 添加Word文本和图片超链接的方法

    C# 添加Word文本和图片超链接的方法

    本文给大家介绍如何用C#编程语言对Word文档中的文本和图片进行超链接设置。感兴趣的朋友一起看看吧...

    E-iceblue5092022-01-24
  • C#详解如何获取C#类中发生数据变化的属性信息

    详解如何获取C#类中发生数据变化的属性信息

    这篇文章主要介绍了详解如何获取C#类中发生数据变化的属性信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    墨墨墨墨小宇5852022-09-08
  • C#基于数据类型转换(装箱与拆箱)与常量详解

    基于数据类型转换(装箱与拆箱)与常量详解

    下面小编就为大家分享一篇基于数据类型转换(装箱与拆箱)与常量详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    xiaoyulong6342022-02-13