我有一個(現有的)類型類項:類型化<> /無類型設計
Items<T>
T Value { get; }
T可以是雙,字符串或者int。
然後,我有一個類,必須持有幾個項目的實例。在這個類的單個實例中,T總是相同的。既然這樣,實際包含的類型是由屬性確定,並且該容器不鍵入:
Data
DataType { get; set; }
Items<double>
double Value;
Items<string>
// ... and so on. Nasty stuff.
在理想情況下,當然,這將是
Data<T>
Items<T>
T value
數據實例是從頭在代碼創建,並且可以從數據庫加載。所以當然,我們將來會有一個工廠,但Create方法的返回類型是什麼?
更糟糕的是,我需要這樣的:
DataCollection
// HERE'S THE PAIN: What's the type here?
List of Data<> instances with differing types
foreach (? data in someDataCollection)
if (thetypeof data is double)
doSomething();
else
doSomethingElse();
現在,我可以解決這個問題,但我看不到解決這個乾淨的方法。
我的第一個問題是DataCollection的聲明。列表的類型是什麼?名單<對象>,所以它可以容納數據<雙>和數據<字符串>?
請出示實際的代碼,而不是僞代碼。 – 2011-04-06 16:49:48