我看了其他帖子,但這個問題與他們不同。存儲C#的設置?
我想存儲3個數據值(類型,字符串,字符串),我將如何能夠做到這一點?
它的一個例子是:String,「lol」,「lol2」。
我已經嘗試了資源設置和設置設置,但都沒有工作。他們都說這個名字不能加倍。
這是Windows窗體
任何幫助,將不勝感激謝謝。
而且我必須按這個順序來做。因爲當有人從我的下拉列表中選擇方法「字符串」時,它會顯示包含「lol」的字符串類型的所有內容。然後在選擇'lol'字符串後lol2應該放在文本框中
我看了其他帖子,但這個問題與他們不同。存儲C#的設置?
我想存儲3個數據值(類型,字符串,字符串),我將如何能夠做到這一點?
它的一個例子是:String,「lol」,「lol2」。
我已經嘗試了資源設置和設置設置,但都沒有工作。他們都說這個名字不能加倍。
這是Windows窗體
任何幫助,將不勝感激謝謝。
而且我必須按這個順序來做。因爲當有人從我的下拉列表中選擇方法「字符串」時,它會顯示包含「lol」的字符串類型的所有內容。然後在選擇'lol'字符串後lol2應該放在文本框中
Settings.settings的作品,但它聽起來像你會更好地爲這種類型的數據做自己的序列化格式。請記住Settings.settings類適用於微不足道的用戶和應用程序設置。 ,複雜或大型結構可能會改變,應使用特定於應用程序的格式。使用settings.settings作爲窗口位置和顏色首選項(作爲示例)
請參閱我的答案,瞭解序列化您自己的設置文件的示例。 – 2011-05-03 02:57:32
查找IsolatedStorage類,這個是sux =) 但是如果你使用的是Silverlight,那麼你可以使用IsolatedStorageSettings類真棒!
另一種選擇是創建和管理自己的設置文件。這是一個讓你開始的樣本。首先創建一個類來表示要存儲的數據,即CustomDataStoreItem。然後創建另一個類來保存這些CustomDataStoreItems的集合:
[Serializable()]
class CustomDataStore
{
public CustomDataStore()
{
//This is required by serialization
}
private List<CustomDataStoreItem> _items;
public List<CustomDataStoreItem> Items
{
get
{
if (_items == null)
_items = new List<CustomDataStoreItem>();
return _items;
}
set { _items = value; }
}
public void LoadSettings(string SettingsFileName)
{
if (File.Exists(SettingsFileName))
{
BinaryFormatter bf = new BinaryFormatter();
FileStream fs = File.OpenRead(SettingsFileName);
CustomDataStore ds = (CustomDataStore)bf.Deserialize(fs);
fs.Close();
_items = ds.Items;
}
}
public void SaveSettings(string SettingsFileName)
{
if (File.Exists(SettingsFileName))
File.Delete(SettingsFileName);
BinaryFormatter bf = new BinaryFormatter();
FileStream fs = File.Create(SettingsFileName);
bf.Serialize(fs, this);
fs.Close();
}
}
[Serializable()]
class CustomDataStoreItem
{
public CustomDataStoreItem()
{
//This is required by serialization
}
public string Type { get; set; }
public string String1 { get; set; }
public string String2 { get; set; }
}
現在你可以使用這個類的,像這樣:
要保存設置CustomDataStoreItems添加到收藏CustomDataStore.Items。然後調用SaveSettings方法:
CustomDataStore ds = new CustomDataStore();
CustomDataStoreItem dsi = new CustomDataStoreItem();
dsi.Type = "String";
dsi.String1 = "lol";
dsi.String2 = "lol2";
ds.Items.Add(dsi);
ds.SaveSettings(@"C:\Users\Public\Test.bin");
你可以背出加載設置是這樣的:
CustomDataStore ds = new CustomDataStore();
ds.LoadSettings(@"C:\Users\Public\Test.bin");
foreach (CustomDataStoreItem dsi in ds.Items)
{
Console.WriteLine(string.Format("{0} {1} {2}", dsi.Type, dsi.String1, dsi.String2));
}
爲什麼你不能使用兩個變量?如果它必須在一箇中,請將其存儲爲不允許該人存儲的分隔符,然後對其進行解析以供顯示。 – 2011-05-03 02:16:49
該人可能會放入「:」或其他字符,字符串中允許所有字符 – Eric 2011-05-03 02:20:31
然後創建自己的分隔符,如[ - $ mydelimiter $ - ],這是非常愚蠢的,沒有人會真正進入。 – Phill 2011-05-03 02:22:56