c# - 需要帮助实现接口(interface)

标签 c# generics mvvm interface

在我的应用程序中,我想让我的界面更通用。就目前而言,我有两个模型,CampaignModel 和 StringModel,它们都使用相同的方法,但参数不同,即

事件模型:

void GetAll(EventHandler<GetAllCampaignsCompletedEventArgs> eh);
void GetAllByName(string name, EventHandler<GetCampaignCompletedEventArgs> eh);
void GetAllByID(long id, EventHandler<GetAllCampaignsByIDCompletedEventArgs> eh);
void Add(Campaign entity, EventHandler<CreateCampaignCompletedEventArgs> eh);
void Update(Campaign entity, EventHandler<UpdateCampaignCompletedEventArgs> eh);
void Delete(Campaign entity, EventHandler<DeleteCampaignCompletedEventArgs> eh);

弦乐模型:
void GetAll(EventHandler<GetAllCampaignStringsCompletedEventArgs> eh);
void GetAllByName(string name, EventHandler<GetCampaignStringByIdentifierCompletedEventArgs> eh);
void GetAllByID(long id, EventHandler<EventArgs> eh);
void Add(CampString entity, EventHandler<EventArgs> eh);
void Update(CampString entity, EventHandler<EventArgs> eh);
void Delete(CampString entity, EventHandler<EventArgs> eh);

我只需要指导如何创建一个我可以使用的更通用的界面。这样做的原因是我只想要每个模型的一组 View 。即只有一个添加、更新和删除 View ,它将调用事件模型或字符串模型中的方法。如果您有任何想法如何完成这项工作,我将不胜感激。

谢谢,
斯图尔特。

最佳答案

如果您查看代码,您会发现,至少在您提供的函数中,两个类之间的变化是一种参数类型。这里的常用方法是为每个公共(public)组定义一个 Base 类型,所以这里是伪代码:

public class GetCampaignCompletedEventArgs : BaseEventArg {} 
public class GetCampaignStringByIdentifierCompletedEventArgs: BaseEventArg {} 
... 
...
public class Campaign : BaseCampaign {} 
public class CampString: BaseCampaign {} 

在此定义接口(interface)或 AbstractClass 之后
public interface IBase {
void GetAllByName(string name, EventHandler<BaseEventArg > eh);
...

}

只是为了给你的想法,我很难写出真正具体的东西,因为它取决于你的实现。

希望这可以帮助。

关于c# - 需要帮助实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622137/

相关文章:

c# - 将异步/等待与 Dispatcher.BeginInvoke() 结合使用

c# - MVC4 将消息从一个 Controller 传递到另一个 Controller

c# - 我如何解析此 XML 中的信息?

android - 如何使用数据绑定(bind)请求或删除对 edittext 的关注

c# - Win 7 中的 "pin to desktop",兼容 XP

swift - Swift 扩展中具有泛型类型参数的方法

swift - 如何使用 Swift KeyPaths 的异构数组

java - 具有最终上限的通配符

c# - ObservableCollection从一种方法而不是另一种方法更新

c# - DataGrid 显示为空 MVVM Wpf