我一直在研究设置类中使用的单例模式。以下是我的项目 AccessTest 的 Settings.Designer.cs 的相关代码:
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
public string applicationSetting1
{
get
{
return ((string)(this["applicationSetting1"]));
}
}
}
我不清楚的是为什么属性“applicationSetting1”是通过另一个属性“Default”访问的,如下所示:
var value = AccessTest.Properties.Settings.Default.applicationSetting1;
我正在运行 VS2013 C# 和 4.5。
因为defaultInstance
是静态的,而applicationSetting1
不是。这有效地使得defaultInstance
your manager类实例的。当您在类上调用静态方法时,它不需要实例化,因此您知道您只能维护该类的单个实例。
回复您的评论:
Default
不是parentapplicationSetting1 的;Default
只是一个返回 applicationSetting1 实例的全局函数。在单例模式的情况下,这总是恰好是same实例。
Manager这是我的术语。为了更好地描述什么是单例模式,请将其视为具有单个访问器的全局变量(我将其描述为管理器,仅仅是因为它manages变量的生命周期)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)