这段代码有什么问题? 我收到了这个错误:“分配给 '....' 的表达式必须是常量”
public const string ConnectionString = System.IO.File.ReadAllText(@"D:\connection.ini");
在编译时必须知道一个常量的值,请使用readonly代替,它将有类似的效果。
static readonly
。 - Silvermindstatic readonly
意味着如果在执行静态构造函数时文件不存在,那么没有明智的方法可以从错误中恢复,因此我认为这不会比在此处使用 readonly
实例字段更好。 - user743382static readonly Lazy<string>
字段(可从 static string
属性中访问),使用 LazyThreadSafetyMode.PublicationOnly
确保如果抛出异常,则不会缓存该异常。 - user743382
const
的文档? - JonFile.ReadAllText
部分在运行时被评估,const
用于指定编译时表达式。你可以使用readonly
替代。 - Soner Gönülreadonly
代替const
,并将静态的public static readonly string ConnectionString = System.IO.File.ReadAllText(@"D:\connection.ini");
,注意现在它只是一个字段,只能在构造函数中更改。 - Alessandro D'Andria