【发布时间】:2017-08-31 14:20:43
【问题描述】:
我正在部分修改一个应用程序,我需要将以下常量的值设置为环境变量的值如果存在。
我已经拥有的:
private const string BuildPackagePath = @"\\server\build\";
我想做的是:
if (Environment.GetEnvironmentVariable("EnvVar") != null)
Set the property value to = Environment.GetEnvironmentVariable("EnvVar")
else
{Keep default/assigned value}
我了解分配的左侧必须是变量。我可能不得不更改类型,但只是想知道是否有人可以给我一个想法,以便可以保持当前代码的结构。
【问题讨论】:
-
你不能修改常量值,这就是为什么它被称为 constant。但是,您可以使用
readonly表示该成员只能在构造函数中进行修改。 -
谢谢!我只是想检查一下
-
对于大多数意图和目的,
static readonly将像const在运行时一样工作。如果你需要一个编译时间常数,你当然不能使用它。 -- 所以你可以有private static readonly string BuildPackagePath = Environment.GetEnvironmentVariable("EnvVar") ?? @"\\server\build\";