0

可能是什么问题呢 ?每次发生相同的异常时都会发生异常。这是当我单击按钮并调用它时引发异常的行:

public void Save()
        {
            Options_DB.Set_Points_Coordinates_List(Point_X);
        }

Point_X 是一个浮点类型的列表

无法弄清楚如何解决问题。

我在 Form1 中有一个按钮单击事件,我在另一个类中调用上面的函数:Save()

当它在 Save() 函数中执行该行时,我在其上使用了一个断点,它转到 Options_DB 类并在它的顶部执行:

static List<float> Points_Coordinates;
        static string settings_dir;
        static string settings_file;
        static OptionsFile setting_file;
        static string path_settings;
        static string path_exe;

        static Options_DB()
        {
            // ---  O P E N N I N G   S E T T I N G   F I L E   
            //t = voices_volume_trackbar.ToString();
            path_exe = Path.GetDirectoryName(Application.LocalUserAppDataPath);
            path_settings = Path.GetDirectoryName(Application.LocalUserAppDataPath);
            settings_file = "\\settings.txt";
            settings_dir = path_settings + @"\settings";
            setting_file = new OptionsFile(settings_dir + settings_file);

当它到达该行时:setting_file = new OptionsFile(settings_dir + settings_file);它到达 OptionsFile 类并尝试在异常中创建目录和文件:

string path_exe;
        string temp_settings_file;
        string temp_settings_dir;
        string Options_File;
        StreamWriter sw;
        StreamReader sr;

/*----------------------------------------------------------
 * Function     : OptionsFile
 * Description  : Constructor
 * Parameters   : file_name is the name of the file to use
 * Return       : none
 * --------------------------------------------------------*/
    public OptionsFile(string settings)
    {

        if (File.Exists(settings))
        {

        }
        else
        {
        FileStream fs=File.Create(settings);

但是一旦断点在线 File.Create(settings); 我看到包含路径和文件名的设置,而不是创建它们,它跳回到 Save() 函数到那里的行,然后抛出异常。

为什么它跳转到 Save() 而不是创建路径和文件?

4

1 回答 1

0

该异常意味着该类型的某些静态成员无法初始化或该类型的静态构造函数失败。检查那些。

您的堆栈跟踪清楚地表明问题出在

在 D:\C-Sharp\AnimationEditor\AnimationEditor\Options_DB.cs:line 30 中的 mws.Options_DB..cctor()

.cctor() 是静态构造函数。

于 2012-07-03T21:40:23.337 回答