gpt4 book ai didi

c# - 关于 C# Static Readonly 成员

转载 作者:行者123 更新时间:2023-11-30 19:50:34 24 4
gpt4 key购买 nike

我有以下情况。我的应用程序中有一些非常常见的类,它包含一个名为“BinDirectory”的静态只读字段,该字段保存 bin 目录的路径。此类中的其他字段也是静态只读的,使用此值作为其值的基础。在当前版本中,BinDirectory 被初始化为保存代码运行的目录(即 Assembly.GetExecutingAssembly().CodeBase)。我想扩展此类以初始化 BinDirectory 以在从我的应用程序安装程序运行时从安装程序上下文中保存“TargetDir”。我可以将 BinDirectory 更改为简单的静态,但我不想这样做,因为它会让我对我的应用程序中常见的类进行大量更改。有人可以为这个问题提出一个优雅的解决方案吗?

最佳答案

仅使用“get”访问器使其成为属性:

public static string BinDirectory
{
get { return _initialisedBinDirectory; }
}

然后在您的静态构造函数代码中,根据需要初始化私有(private)变量。

编辑

延迟加载(根据评论):

public static string BinDirectory
{
get
{
if (_initialisedBinDirectory == null)
// load the variable when needed
else
return _initialisedBinDirectory;
}
}

这样您就可以只在需要时加载变量,并在您再次调用它时重新使用它。希望您不要将 null 归类为它的有效值。

关于c# - 关于 C# Static Readonly 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140022/

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