类型初始化异常c#

时间:2016-04-20 19:58:46

标签: c# winforms

我查看了与此相似的另一个问题,但不太明白他们为解决问题所采取的措施。

我只是将值传递给public static int:

namespace ModNote
{

public partial class homeScreen : Form
{

    public homeScreen()
    {
        InitializeComponent();
    }

    private void gamemodButton_Click(object sender, EventArgs e)
    {
        backgroundProgram.moduleNumber = 1;
        this.Hide();
        moduleScreen showForm = new moduleScreen();
        showForm.Show();         
    }

这是初始化此变量的地方

namespace ModNote
{
#region // Setting up Variables
public class backgroundProgram
{
    public static int moduleNumber;     
}
#endregion

}

这里是错误的图片:http://puu.sh/opETJ/fb8152d164.png

三江源。

编辑:初始化字符串数组导致此错误,此数组的任何问题都被初始化? (moduleArray)

namespace ModNote
{
#region // Setting up Variables
public class backgroundProgram
{
    public static int moduleNumber;
    public static string[] noteArray;
    public static string[] moduleArray = new string[7] 
    { File.ReadAllText(@"ModulesFile\CGP1005M.txt"),
        File.ReadAllText(@"ModulesFile\CMP1005M.txt"),
        File.ReadAllText(@"ModulesFile\CMP1123M.txt"),
        File.ReadAllText(@"ModulesFile\CMP1124M.txt"),
        File.ReadAllText(@"ModulesFile\CMP1125M.txt"),
        File.ReadAllText(@"ModulesFile\CMP1127M.txt"),
        File.ReadAllText(@"ModulesFile\CMP1129M.txt")
    };

}
#endregion

}

1 个答案:

答案 0 :(得分:0)

如果抛出异常:

public static string[] moduleArray = new string[7] 
{ File.ReadAllText(@"ModulesFile\CGP1005M.txt"),
    File.ReadAllText(@"ModulesFile\CMP1005M.txt"),
    File.ReadAllText(@"ModulesFile\CMP1123M.txt"),
    File.ReadAllText(@"ModulesFile\CMP1124M.txt"),
    File.ReadAllText(@"ModulesFile\CMP1125M.txt"),
    File.ReadAllText(@"ModulesFile\CMP1127M.txt"),
    File.ReadAllText(@"ModulesFile\CMP1129M.txt")
};

然后其中一行是抛出异常。从文件中读取时会出现各种原因 - 安全性,未找到,正在使用等等。

我建议将该逻辑移动到静态构造函数,以便您可以调试它以找到即时问题,然后添加更好的错误处理。

另一种选择是读取静态构造函数中的所有数据,而是创建Initialize方法或其他东西。静态构造函数中的异常通常很难处理。