C# 调用多个单例实例
我有一个像这样的单身班C# 调用多个单例实例,c#,C#,我有一个像这样的单身班 class Singleton { private static Singleton _instance = new Singleton(); public string Username { get; set; } public string Password { get; set; } public static Singleton Instance { get { return _instance ?? (_
class Singleton
{
private static Singleton _instance = new Singleton();
public string Username { get; set; }
public string Password { get; set; }
public static Singleton Instance
{
get { return _instance ?? (_instance = new Singleton()); }
}
}
像这样多次调用Singleton.Instance.X会影响性能吗
private void Method()
{
Singleton.Instance.Username = "";
Singleton.Instance.Password = "";
}
或者这更好(&为什么)
这种方法:
private void Method()
{
Singleton singletoon = Singleton.Instance;
singletoon.Username = "";
singletoon.Password = "";
}
更好,因为您不在getter中执行if语句
在这种情况下:
private void Method()
{
Singleton.Instance.Username = "";
Singleton.Instance.Password = "";
}
调用getter两次,因此if条件(在本例中由“??”表示)
虽然性能上的差异非常微小,尤其是在您的场景中
顺便说一句,您正在静态初始化您的单例
\u实例
,因此无需在getter中执行此操作 这种方法:
private void Method()
{
Singleton singletoon = Singleton.Instance;
singletoon.Username = "";
singletoon.Password = "";
}
更好,因为您不在getter中执行if语句
在这种情况下:
private void Method()
{
Singleton.Instance.Username = "";
Singleton.Instance.Password = "";
}
调用getter两次,因此if条件(在本例中由“??”表示)
虽然性能上的差异非常微小,尤其是在您的场景中
顺便说一句,您正在静态初始化您的单例
\u实例
,因此无需在getter中执行此操作
?
在实例中
属性是没有意义的,因为您之前初始化了基础字段private void Method()
{
Singleton singletoon = Singleton.Instance;
singletoon.Username = "";
singletoon.Password = "";
}
但不是因为性能,而是因为它更容易阅读
?
在实例中
属性是没有意义的,因为您之前初始化了基础字段private void Method()
{
Singleton singletoon = Singleton.Instance;
singletoon.Username = "";
singletoon.Password = "";
}
但这不是因为性能,而是因为它更易于阅读。因为您正在静态初始化
\u实例
,所以不需要由于您正在静态初始化\u实例
,因此不需要属性getter中的code>。@RuneS更好的方法是避免无意义的条件语句(比如?
在这里)。我同意你的观点,我已经修复了它,但是我的意思是在我上面提到的2种编码风格和我更新了答案之间的更好方法。但不得不说,这主要是基于观点的。@RuneS更好的方法是避免无意义的条件语句(如?
在这里)。我同意你的观点,并且我已经解决了它,但是我的意思是,在我上面提到的2种编码风格和一般情况下我已经更新了我的答案之间,有更好的方法。但不得不说,这主要是基于观点的。