C# 单例类是什么
2个回答
展开全部
就是在类整个运行过程各种只会产生一个实例~
追问
用法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般是将构造方法设置为private方法,
然后提供一个public static 的GetInstance方法,这个方法内部会调用私有的构造方法来构造唯一的实例。
//===================
using System;
using System.Collections.Generic;
public class MyClass
{
public static void Main()
{
SingleInstanceClass single=SingleInstanceClass.GetInstance("张三");
Console.WriteLine(single.Name);
Console.Read();
//single=new SingleInstanceClass();
//error,“SingleInstanceClass.SingleInstanceClass(string)”不可访问,因为它受保护级别限制
}
}
class SingleInstanceClass
{
private SingleInstanceClass(string name)
{
this.name=name;
}
private string name;
public string Name
{
get{return name;}
}
private static SingleInstanceClass singleInstance = null;
public static SingleInstanceClass GetInstance(string name)
{
if(singleInstance==null)
{
singleInstance=new SingleInstanceClass(name);
}
return singleInstance;
}
}
然后提供一个public static 的GetInstance方法,这个方法内部会调用私有的构造方法来构造唯一的实例。
//===================
using System;
using System.Collections.Generic;
public class MyClass
{
public static void Main()
{
SingleInstanceClass single=SingleInstanceClass.GetInstance("张三");
Console.WriteLine(single.Name);
Console.Read();
//single=new SingleInstanceClass();
//error,“SingleInstanceClass.SingleInstanceClass(string)”不可访问,因为它受保护级别限制
}
}
class SingleInstanceClass
{
private SingleInstanceClass(string name)
{
this.name=name;
}
private string name;
public string Name
{
get{return name;}
}
private static SingleInstanceClass singleInstance = null;
public static SingleInstanceClass GetInstance(string name)
{
if(singleInstance==null)
{
singleInstance=new SingleInstanceClass(name);
}
return singleInstance;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询