首页 > 编程语言 >单例模式-C#

单例模式-C#

时间:2023-05-08 09:03:17浏览次数:30  
标签:Console name C# 模式 instance 参数 单例 static SingleCase

// See https://aka.ms/new-console-template for more information
//Console.WriteLine("Hello, World!");

class SingleCase
{
public static SingleCase instance=null;
public string name ="";
public static SingleCase getInstance(string n)
{
if(instance==null)
{
instance = new SingleCase();
instance.name = n;
}
return instance;
}
}

class Program
{

static void Main(string[] args)
{

SingleCase s1 = SingleCase.getInstance("我是第一次传过来的参数");
SingleCase s2 = SingleCase.getInstance("我是第二次传过来的参数");

Console.WriteLine(s1.name);
Console.WriteLine(s2.name);
Console.ReadKey();
}
}

 

 

 

两次输出的结果是一样的,这是因为当第一次传入参数的时候,instance 为空,执行上面的方法后,name的值就变成了“我是第一次传过来的参数”,

当你第二次再次传入参数时,由于静态变量在内存中只有一个,只占一份儿,所以此时instance 已经不为空了,还会直接输出第一个参数是的instance 值,

所以,不管你输入几次参数,

标签:Console,name,C#,模式,instance,参数,单例,static,SingleCase
From: https://www.cnblogs.com/wugh8726254/p/17380629.html

相关文章

  • 【Dotnet 工具箱】DotNetCorePlugins- 动态加载和卸载 .NET 程序插件
    你好,这里是Dotnet工具箱,定期分享Dotnet有趣,实用的工具和组件,希望对您有用!1.DotNetCorePlugins-动态加载和卸载.NET程序插件DotNetCorePlugins是一个.NET的开源插件项目,它提供了能够动态加载程序集的API,然后把它们作为.NET主程序的扩展程序执行。这个库主要用到了......
  • COMP3425数据挖掘
    COMP3425辅导、辅导c/c++,Python编程COMP3425andCOMP8410DataMiningS12023Assignment2:DescriptionofDataDataandMetadataThedatasuppliedfortheassignmentarisesfromTheAustralianDataArchive’sANUPollDataverse[1].Asastudentofthecourse,you......
  • PKUSC 2022游记
    你说的对,但是波波曰写游记先默写一遍题意,要不忘了(DAY1T1给两个等长的字符串\(S,T\),对于每个位置,问将\(S\)这个位置的字符换成\(T\)对应位置的字符后,\(S\)的最长border的长度\(|S|\leq2*10^6\),时限\(1s\)T2狼人杀背景,现在有\(n\)个人,其中一个狼人一个预言家,剩......
  • Atcoder Grand Contest 046 D - Secret Passage
    思路挺自然的一道agc。首先发现删除完字符后的状态可以用一个三元组\((i,j,k)\)表示,其中\(i\)表示删除完之后只剩\([i+1,n]\)的后缀,\(j\)表示可以在后面插入\(j\)个\(0\),\(k\)表示可以在后面插入\(k\)个\(1\),显然不同的三元组能够得到的串是不同的,而一组三元组可......
  • 用CPU来加速你的Linux命令
    在处理大数据的时候我们总会想着一些并行的操作来加速我们的操作,我们的cpu是多核多线程的,但是我们的有些命令却是单线程的命令,不能够进行并行的运算,如:grep、bzip2、wc、awk、sed等等,只能使用一个CPU内核。要想让Linux命令使用所有的CPU内核,我们需要用到GNUParallel命令,下面我......
  • drone CI工具实现外部配置文件拉取私有镜像
    drone:image:drone/droneenvironment:-DRONE_GITEA_SERVER=http://xxx:13000-DRONE_GITEA_CLIENT_ID=a2a16b95-4ea4-43ff-a3da-b18260acd8b0-DRONE_GITEA_CLIENT_SECRET=gto_dt3xg3jcgcscift4mdhtqljzhb7qphsc3doalve5w55bpllvrp4a......
  • Go语言的type func()用法
    golang通过type定义函数类型在Go语言中,type可以定义任何自定义的类型比如熟悉的:typedogstruct{},typemyIntint等等所以func也是可以作为类型自定义的,typemyFuncfunc(int)int,意思是自定义了一个叫myFunc的函数类型,这个函数的签名必须符合输入为int,输出为int。g......
  • 增删改查操作(CRUD)
    crud是指在做计算处理时的增加(Create)、读取(Read)、更新(Update)和删除(Delete)几个单词的首字母简写常用增删改查操作(CRUD)算术运算符>比较运算符>逻辑运算符a,b,lst(2,3,[1,2,3])c>b>aTrue PyCharm中,安住Ctrl,鼠标移动到代码中变量和函数时,分别有提示......
  • Record of circos usage
    Circos可以在线使用,在线使用时是把表格转为圈图,不过只允许最大75行和75列;做一些简单的示意图会比较好,最后时会介绍下在线的tableviewer的使用。也可以安装在本地,在本地可以绘制基于基因组的更复杂的图。Circos由Perl写成,安装相对简单,只要Perl的包都装好了就可以了。Circos安装从htt......
  • 删除 vector 中引用指向的元素,会有什么结果?
    #include<iostream>#include<vector>intmain(){std::vector<int>arr={1,2,3};constint&a=arr[0];std::cout<<a<<'\n';arr.erase(arr.begin());std::cout<<a<<�......