在实现的类中调用接口方法有啥用? [复制]

Posted

技术标签:

【中文标题】在实现的类中调用接口方法有啥用? [复制]【英文标题】:What is the use of calling Interface methods in the implemented class? [duplicate]在实现的类中调用接口方法有什么用? [复制] 【发布时间】:2021-01-19 01:40:54 【问题描述】:

在实现它的类中调用接口方法而不是像下面那样实现特定方法本身有什么用 -

public class MyController: Controller, IActionFilter 
  public ActionResult Index(Customer obj) 
    return View(obj);
  
  void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext) 
  
    Trace.WriteLine("Action Executed");
  
  void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) 
    Trace.WriteLine("Action is executing");
  

以这种方式调用方法->“IActionFilter.OnActionExecuted”实现了什么?

【问题讨论】:

【参考方案1】:

void IActionFilter.OnActionExecuted 是该接口方法的显式实现。

如果您将实例转换为IActionFilter,则只能在MyController 实例上调用OnActionExecuted 方法。

但是,如果您进行 隐式 实现,例如:

public void OnActionExecuted(ActionExecutedContext filterContext)

您将能够在 MyController 实例上调用 OnActionExecuted 而无需将其转换为 IActionFilter

【讨论】:

这有帮助。另外,在这里查找显式接口实现(对于像我这样的其他人)-docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…

以上是关于在实现的类中调用接口方法有啥用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章