我創建了Settings
類,我用它編輯我的應用程序.ini
文件。我Settings.ini
文件看起來像這樣:返回空數組而不是null
[ACCOUNT]
login=xyz
password=xyz
locations=1,2,5,8
現在我越來越theese值是這樣的:
class Settings {
public static IniFile Config = new IniFile(Directory.GetCurrentDirectory() + @"\Settings.ini");
public static string Login { get { return Config.Read("login", "ACCOUNT"); } set { Config.Write("login", "ACCOUNT"); } }
public static string Password { get { return Config.Read("password", "ACCOUNT"); } set { Config.Write("password", "ACCOUNT"); } }
public static int[] Locations { get { return Array.ConvertAll(Config.Read("locations", "ACCOUNT").Split(','), s => int.Parse(s)); } set { Config.Write("locations", "ACCOUNT"); } }
}
的問題是,當我Settings.ini
文件都有空的位置:
locations=
我變量Settings.Locations
返回null
而不是空數組。我試過這樣做:
public static int[] Locations
{
get { return new int[] {Array.ConvertAll(Config.Read("locations", "ACCOUNT").Split(','), s => int.Parse(s))}; }
set { Config.Write("locations", "ACCOUNT"); }
}
但是,這只是不工作。我不能將int []轉換爲int。你有什麼想法,我怎樣才能返回空陣列?
我不明白,'Config.Read( 「位置」, 「帳戶」)'如果沒有位置返回null?因爲'Locations'屬性永遠不會返回null,因爲'Array.ConvertAll'永遠不會返回null。但是,如果'Config.Read'返回null'string.Split'會引發異常。 –
你說得對。現在我注意到我得到'格式異常' –
而不是'Array.ConvertAll',您應該使用循環和'int.TryParse'來嘗試解析每個令牌。那麼你可以處理無效輸入 –