我试图将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/

10-16 20:34