我试图将File.ReadAllText
用作静态只读字符串。我的问题是我用.netz编译它,当我的程序启动时,它会查找我的字符串,如果不是
发现我有个讨厌的例外。是否可以通过使用if/else来解决这个问题?
通常我会让它弹出一个消息框或标签,说明找不到该文件。如果找不到该文件,则使用.netz会收到一条错误消息,并且程序不会启动。
这是我在整个程序中使用的静态字符串
static readonly string config = File.ReadAllText("config.ini");
我正在使用.netz来包含我的dll。
最佳答案
与其与声明内联,不如将工作移到静态构造函数。然后,添加try/catch
块来处理您认为合适的错误情况就变得很简单了:
public class MyClass
{
static readonly string config;
static MyClass()
{
try
{
config = File.ReadAllText("config.ini");
}
catch (FileNotFoundException)
{
//do something else
//use a default configuration?
//report to the user?
//crash and burn?
}
}
}
注意,除了在路径上找不到文件之外,还有many reasons的原因导致读取文件失败。你也可以考虑抓一些。
关于c# - 使用File.ReadAllText的静态字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17699748/