gpt4 book ai didi

c# - 单例模式 - 默认属性

转载 作者:行者123 更新时间:2023-11-30 14:10:20 25 4
gpt4 key购买 nike

我一直在研究 Settings 类中使用的单例模式。这是我的项目 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”是通过另一个属性“默认”访问的,如下所示:

var value = AccessTest.Properties.Settings.Default.applicationSetting1;

我正在运行 VS2013 C# 和 4.5。

最佳答案

因为 defaultInstance 是静态的,而 applicationSetting1 不是。这有效地使 defaultInstance 成为类实例的经理。当您调用一个类的静态方法时,它不需要实例化,因此您知道您只能维护该类的单个实例。

回复您的评论:

Default 不是 applicationSetting1 的 parentDefault 只是一个返回 applicationSetting1 实例的全局函数。在单例模式的情况下,它总是恰好是相同实例。

经理 是我的任期。为了更好地描述单例模式是什么,请将其视为具有单个访问器的全局变量(我将其描述为管理器,只是因为它管理变量的生命周期)。

关于c# - 单例模式 - 默认属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com