【发布时间】:2023-10-04 04:17:01
【问题描述】:
我正在使用 c# 尝试实现 2 个使用相同接口的类。 这两个类只需要一个方法。 然而,这两种方法需要是不同的类型,采用不同的参数。 我真的希望能够从接口继承一个方法并在每个类中覆盖它,因为这会很好而且整洁(接口对于程序功能是必需的(使用依赖注入)) 不幸的是,这两个类也是必需的,因为电子邮件发件人类将在其他程序中重复使用。
我找到了一个几乎适合我的问题的解决方案,它是: Implementing methods from an interface but with different parameters
我的不同之处在于我的两个类中的每一个都应该只调用一个方法。
这是我的代码(尝试在之前的解决方案中实现泛型):
interface IEmailSender<T>
{
T DoEmail();
}
public class EmailGenerator : IEmailSender<MailMessage>
{
public override MailMessage DoEmail(string emailAddress)
{
MailMessage message = new MailMessage();
//code to generate email message
return message;
}
}
public class EmailSender : IEmailSender<bool>
{
public override bool DoEmail(MailMessage message)
{
//code to send email
return true;
}
}
理想情况下,我希望我的电子邮件发件人方法无效,但如果它必须具有返回值,我不介意它返回一个布尔值。
希望这是有道理的,我实际上只是想在这里保持整洁,因为目前为了使其工作,我需要在我的接口中有两个方法并让每个类调用一个空方法。
提前致谢,
【问题讨论】:
-
你能解释一下为什么这两个类应该“共享”相同的接口吗?他们似乎没有做类似的事情,是吗?
-
我最初想要一个“电子邮件”接口来处理处理电子邮件的两个类。如果没有办法做到这一点,那么我将不得不将它们分开。