我在我的應用程序中創建一個Settings對象,用於存儲用戶定義的設置和whatnot。我打算使用各種數據類型來設置我的設置字段(int,字符串,枚舉,真正的Serializable)。「存儲」一個類型參數供以後在C#中使用?
如果可能的話,我還想用類型安全的方法來設置任何設置。我提出的方法會做這樣的事情:
Tuple<string, Type> SettingName = new Tuple<string, Type>("NumberOfFoos",
typeof(**TYPE**));
public void Set(Tuple<string, Type> key, **TYPE** value) { /* Stuff */ }
元組將有效地將其「設置」,用戶將推動一個值,而將包括該設置的鍵以及類型該設置。我想知道的是,如果有什麼辦法讓編譯器強制執行,在Set()
方法中,value
的類型與保存在傳遞給Set()
的元組中的類型對象類型相同?我提出的方式甚至可能嗎?謝謝!
編輯:我想到了更多的東西,我應該澄清。
1)這是一個靜態類,所以我不能序列化整個類,只有它的成員。因此,我真的很想不必爲每個字段處理序列化。我打算將所有設置值存儲在Dictionary<string, **TYPE**>
中並對其進行序列化。
2)Tuple
定義意味着是恆定的和靜態的。我真的把它們視爲更多的typedef類型的東西(我真的應該做我自己的SettingKey結構),用戶傳遞到Set
表明他們正在改變的領域。 Type參數是爲了強制value
參數是指定的類型。
其實,這樣做的結果很好,謝謝! – 2010-09-09 18:48:45