我的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