我的C#應用程序定義了以下枚舉:返回取決於枚舉值一個ObservableCollection
public enum ItemTypes {
REQUIREMENTS,
TEST_CASES
}
現在我想定義它獲取匹配ItemTypes
之一的所有項目,將它們作爲一個ObservableCollection
的接口。因爲我不知道枚舉值是通過了什麼,我認爲使用通用的T
將是一條路。然而,以下爲T
不工作沒有被承認:
interface IDataSourceService {
ObservableCollection<T> GetItems(Enums.ItemTypes itemType);
}
實現類應當是這個樣子(或多或少僞代碼):
ObservableCollection<T> GetItems(Enums.ItemTypes itemType) {
// Define an ObservableCollection which could hold "anything".
ObservableCollection<T> result = null;
switch (itemType) {
case Enums.ItemTypes.REQUIREMENTS:
// Get all requirements from the data source
ObservableCollection<CRequirement> result = new ObservableCollection<CRequirement>();
result = foo();
break;
case Enums.ItemTypes.TEST_CASES:
// Get all test cases from the data source
ObservableCollection<CTestCase> result = new ObservableCollection<CTestCase>();
result = bar();
break;
}
return result;
}
如果'IDataSourceService'是'IDataSourceService''''T'將被識別。但是當你使用接口的時候,你也必須指定這種類型。 –
Default
2013-03-13 08:39:37