定义接口的方法定义

时间:2014-12-17 15:10:51

标签: c# generics interface

我有一个我正在设计的界面。我们称之为“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);

但这对我来说似乎不对。我认为使用泛型有更好的方法,对吗?

1 个答案:

答案 0 :(得分:2)

根据现有注释,如果返回类型足以指定用户从调用中得到什么,那么您应该只能在调用中包含该类型。

ObservableCollection<T> GetData<T>(int StepID);

在这种情况下,可以简单地调用它:

ModelAInstance.GetData<ClassX>(1);
ModelAInstance.GetData<ClassY>(2);

就此而言,我想知道步骤号是否有必要(当然除非它用于方法中的其他逻辑)。

编辑:笨拙的我。我没有注意到链接的额外评论。如果这个解决方案有效,我会推荐迈克,他在我面前的评论中提供了相同的答案。