【发布时间】:2026-01-29 18:25:01
【问题描述】:
假设我要为文件路径设置一些只读变量,我能否保证根据声明顺序分配值的顺序?
例如
static readonly string basepath = @"my\base\directory\location";
static readonly string subpath1 = Path.Combine(basepath, @"abc\def");
static readonly string subpath2 = Path.Combine(basepath, @"ghi\klm";
这是一种安全的方法,还是basepath 在subpath1 和subpath2 引用该字符串时可能仍是该字符串的默认值?
我意识到我可以通过在构造函数中而不是在声明时分配值来保证顺序。但是,我相信如果我需要在静态类中声明变量(例如,控制台应用程序的 Program.cs,它有一个静态 void Main() 过程而不是构造函数),这种方法是不可能的。
更新:
我已经添加了 static 关键字(因为这是我正在使用的以及它编译的原因)以及 Path.Combine 的建议。
【问题讨论】:
-
为什么不让他们
const?使用const,您可以放心。 -
这些路径可能成为单独程序集中的其他代码所依赖的程序集的一部分。这些路径可能会改变,我希望能够做到这一点,而不必重新编译依赖这些路径值的其余程序集。使用常量我别无选择,只能重新编译所有内容,而不仅仅是 DLL。
标签: c# .net-3.5 readonly variable-declaration