我的问题很简单。如何在程序的设置中存储双精度数组,并将其从中删除。
我已经知道了:
string[,] user_credits = new string[user_credits_array, 10];
user_credits[new_user_id, 0] = user_name;
user_credits[new_user_id, 1] = user_email;
user_credits[new_user_id, 2] = user_acc_name;
user_credits[new_user_id, 3] = user_acc_pass;
user_credits[new_user_id, 4] = sSelectedClient;
user_credits[new_user_id, 5] = server_inkomend;
user_credits[new_user_id, 6] = server_uitgaand;
user_credits[new_user_id, 7] = server_port + "";
user_credits[new_user_id, 8] = ssl_state;
如您所见,我是否使用用户ID将信息存储在一起。我以这种方式存储它:
Properties.Settings.Default.user_credits = user_credits;
Properties.Settings.Default.Save();
我做对了吗?现在该阵列仍处于用户设置中吗?
以及如何从具有正确用户ID的设置中获取信息呢?
我知道这听起来很疯狂,但是我认为这是最好的方法。但是,如果你们知道更好的方法,请告诉我。一世
编辑1:
我有这段代码:
string[,] user_credits = new string[user_credits_array, 10];
user_credits[new_user_id, 0] = user_name;
user_credits[new_user_id, 1] = user_email;
user_credits[new_user_id, 2] = user_acc_name;
user_credits[new_user_id, 3] = user_acc_pass;
user_credits[new_user_id, 4] = sSelectedClient;
user_credits[new_user_id, 5] = server_inkomend;
user_credits[new_user_id, 6] = server_uitgaand;
user_credits[new_user_id, 7] = server_port + "";
user_credits[new_user_id, 8] = ssl_state;
MySettings settingsTest = new MySettings();
settingsTest.Save(MySettings.GetDefaultPath());
MySettings anotherTest = MySettings.Load(MySettings.GetDefaultPath());
在运行代码之后,这就是XML文件的样子:
<Complex name="Root" type="WeProgram_Mail.MySettings, WeProgram_Mail, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<Properties>
<Null name="user_credits" />
</Properties>
现在我不明白为什么不保存数组。因为我有这条线
public string[,] user_credits { get; set; }
而且我认为那会从数组中获取用户设置,但是以某种方式却没有。
最佳答案
嗯,我明白了。
如您在XML文件中所看到的,MySettings实例(settingsTest)中的数组为空。
那是因为您将数组填充到settingsTest对象之外,并且永远不要触摸或初始化settingsTest.user_credits ...
请尝试以下操作:
MySettings settingsTest = new MySettings();
settingsTest.user_credits = new string[user_credits_array, 10];
settingsTest.user_credits[new_user_id, 0] = user_name;
settingsTest.user_credits[new_user_id, 1] = user_email;
settingsTest.user_credits[new_user_id, 2] = user_acc_name;
settingsTest.user_credits[new_user_id, 3] = user_acc_pass;
settingsTest.user_credits[new_user_id, 4] = sSelectedClient;
settingsTest.user_credits[new_user_id, 5] = server_inkomend;
settingsTest.user_credits[new_user_id, 6] = server_uitgaand;
settingsTest.user_credits[new_user_id, 7] = server_port + "";
settingsTest.user_credits[new_user_id, 8] = ssl_state;
settingsTest.Save(MySettings.GetDefaultPath());
MySettings anotherTest = MySettings.Load(MySettings.GetDefaultPath());
关于c# - 将数组[,]存储在用户设置中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11738642/