假设我有几个只读变量用于文件路径,我能否根据声明的顺序来保证赋值的顺序?readonly变量声明的顺序是否保证了值的设置顺序?
例如
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,它具有静态无效的Main()过程而不是构造函数),则无法实现此方法。
UPDATE:
我已经添加了static关键字(因为这是我使用的是什么,以及为什么它编译),也Path.Combine的建议。
为什么不让它们成为'const'?用'const'你可以肯定。 – Steven 2010-04-29 17:30:52
这些路径可能成为程序集中其他代码依赖的程序集的一部分。有可能这些路径可能会改变,我希望能够做到这一点,而不必重新编译依赖这些路径值的程序集的其余部分。对于常量,我别无选择,只能重新编译所有内容,而不仅仅是DLL。 – 2010-04-29 17:46:18