[英]No suitable method to override in C#
我的代码中有以下方法,它以 Guid 作为参数。 我想用一个将字符串作为参数的方法覆盖这个方法:
public class SendEmailApi: ISendEmailApi
{
public async Task<EmailTemplate> GetTemplateByIdAsync(Guid templateId)
{
var response = await _emailClient.RequestAsync(EmailClient.Method.GET, urlPath: $"templates/{templateId}");
return JsonConvert.DeserializeObject<EmailTemplate>(await response.Body.ReadAsStringAsync());
}
}
但是,当我尝试实现时,我得到了没有合适的方法来覆盖的错误。
public async override Task<EmailTemplate> GetTemplateByIdAsync(string templateId)
{
var response = await _emailClient.RequestAsync(EmailClient.Method.GET, urlPath: $"templates/{templateId}");
return JsonConvert.DeserializeObject<EmailTemplate>(await response.Body.ReadAsStringAsync());
}
界面如下所示:
public interface ISendEmailApi
{
Task<EmailTemplate> GetTemplateByIdAsync(Guid templateId);
}
我对 C# 和 .NET 比较陌生,任何建议都将不胜感激 - 我确定我遗漏了一些明显的东西? 谢谢
您想要的另一种方法不是override
, override
意味着您正在覆盖基础 class 中的virtual
方法。 而且您没有基础 class。
删除 function 中的override
关键字,它将按您的意愿工作。
错误是正确的。 为了覆盖现有方法,它必须具有与其覆盖的方法完全相同的签名。 由于您的方法接受一个字符串,它不能覆盖一个接受 Guid 的方法。 相反,我认为您想重载该方法( Overloading 和 overriding 。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.