我很少使用以下类型的界面
interface IActivity<T>
{
bool Process(T inputInfo);
}
具体的类如下
class ReportActivityManager :IActivity<DataTable>
{
public bool Process(DataTable inputInfo)
{
// Some coding here
}
}
class AnalyzerActivityManager :IActivity<string[]>
{
public bool Process(string[] inputInfo)
{
// Some coding here
}
}
现在,我该如何编写工厂类,该类重新调整通用接口(interface),例如IActivity。
class Factory
{
public IActivity<T> Get(string module)
{
// ... How can i code here
}
}
谢谢
最佳答案
您应该创建通用方法,否则编译器将不知道返回值中T
的类型。当您拥有T
时,您将能够根据T
的类型创建事件:
class Factory
{
public IActivity<T> GetActivity<T>()
{
Type type = typeof(T);
if (type == typeof(DataTable))
return (IActivity<T>)new ReportActivityManager();
// etc
}
}
用法:
IActivity<DataTable> activity = factory.GetActivity<DataTable>();
关于c# - 工厂类返回通用接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13250411/