2016-04-20 66 views
-1

我看了另一個類似於這個問題,但不明白他們做了什麼來解決這個問題。類型初始化異常c#

我只是傳遞一個值到一個公共靜態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 

}

+0

該異常通常指示靜態初始化程序或構造函數中的異常。既然你沒有表現出我認爲實際問題在別的地方。 –

+0

我剛剛意識到它不起作用,當我初始化我的數組 – Durell

+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方法或其他東西。一般情況下,靜態構造函數中的異常很難處理。

+0

我環顧了一下使用Initialize並且不太明白它。我將如何去創建一個字符串數組,讀取7個文本文件到數組中的每個位置?我一直堅持這一個小時,試圖找出它。 – Durell

+0

沒有神奇的'Initialize'方法;我只是說創建一個靜態方法來初始化數據,而不是在構造函數中進行。您會在啓動時從主程序中調用該方法。 _Syntactically_你的東西沒有問題,但是_something_正在引發運行時異常。您需要調試或添加錯誤處理,以確切地知道問題所在。 –