gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:30:21 25 4
gpt4 key购买 nike

在我的应用程序中,我想让我的界面更通用。就目前而言,我有两个模型,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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com