我有一个我正在设计的界面。我们称之为“IMyInterface”。实现IMyInterface的每个类都将有N个步骤。我在IMyInterface中的一个方法是GetData(int StepNumber)
。 GetData需要返回一个ObservableCollection,它将是一些类的集合,它会根据我们所处的步骤而改变。例如,如果ModelA类实现iMyInterface而ModelA有2个步骤,则调用ModelAInstance.GetData(1)
可能会返回ObservableCollection<ClassX>
。致电ModelAInstance.GetData(2)
可能会返回ObservableCollection<ClassY>
。等
出于某种原因,我无法想出GetData的方法声明。我可以用:
ObservableCollection<object> GetData(int StepID);
但这对我来说似乎不对。我认为使用泛型有更好的方法,对吗?
答案 0 :(得分:2)
根据现有注释,如果返回类型足以指定用户从调用中得到什么,那么您应该只能在调用中包含该类型。
ObservableCollection<T> GetData<T>(int StepID);
在这种情况下,可以简单地调用它:
ModelAInstance.GetData<ClassX>(1);
ModelAInstance.GetData<ClassY>(2);
就此而言,我想知道步骤号是否有必要(当然除非它用于方法中的其他逻辑)。
编辑:笨拙的我。我没有注意到链接的额外评论。如果这个解决方案有效,我会推荐迈克,他在我面前的评论中提供了相同的答案。