c# – 返回通用接口的工厂类
发布时间:2020-12-15 04:09:56 所属栏目:百科 来源:网络整理
导读:我有几个具体使用以下类型的界面 interface IActivityT{ bool Process(T inputInfo);} 具体课程如下 class ReportActivityManager :IActivityDataTable{ public bool Process(DataTable inputInfo) { // Some coding here }}class AnalyzerActivityManager :
我有几个具体使用以下类型的界面
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 } } 现在我如何编写一个类似于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>(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |