c# - 在 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
意味着您正在覆盖virtual
基类中的方法。而且你没有基类。
删除override
函数中的关键字,它将按您的意愿工作。
推荐阅读
- python - Django URL 标记不起作用 - NoReverseMatch
- javascript - 具有动态数据的多语言 React 应用程序
- react-native - react-native : image import err : 这些文件都不存在
- reactjs - Fab 按钮中的覆盖样式不起作用
- mysql - 如何组合多个选择语句并限制它们中的每一个
- python - 在 python 中,是否有一种有效的方法可以将一个数组与映射到另一个数组的元素分开?
- android - 第一次运行 Flutter 项目
- apache-spark - Spark:如何仅对部分数据集应用过滤器?
- regex - 使用 Apache NiFi 如何删除流文件内容或属性值中的最后一个字符
- reactjs - 如何将组件作为 google.maps.MarkerImage 的图标传递?