这个页面很好地描述了如何创建c#单例,但它似乎没有解释你如何实际使用它们。
http://msdn.microsoft.com/en-us/library/ff650316.aspx
因此,如果我要在下面创建这个单例,我该如何开始(我不认为我可以直接实例化它),如果我没有实例对象,如何访问它 - 例如如何读取和写入属性prop1
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
private Singleton(){}
public static Singleton Instance
{
get
{
return instance;
}
}
public int prop1 {get; set;}
}
答案 0 :(得分:3)
要使用单例类,只需调用它的公共静态实例属性即可。例如,假设您有一个记录器,并且您不希望其他开发人员始终实例化它:
public class Logger
{
private static Logger logger = new Logger();
private Logger() { }
public static Logger Instance
{
get
{
return logger;
}
}
public void Log(text)
{
// Logging text
}
public int Mode { get; set; }
}
你应该这样记录:
Logger.Instance.Log("some text here");
在您的情况下,要读/写Mode
属性,您应该写:
Logger.Instance.Mode = 1;
int mode = Logger.Instance.Mode;
答案 1 :(得分:0)
您可以使用
访问该实例Singleton.Instance
答案 2 :(得分:0)
Singleton.Instance.prop1 = 12;
答案 3 :(得分:0)
你只创建一次实例,所以你会有这样的东西
public sealed class Singleton
{
private static readonly Singleton instance;
private bool initialised = false;
private Singleton(){}
public static Singleton Instance
{
get
{
if(initialised)
return instance;
else {
initialsed = true;
instance = new Singleton();
return instance;
}
}
}
public int prop1 {get; set;}
}