[英]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.