在实现的class中调用接口方法有什么用?
What is the use of calling Interface methods in the implemented class?
在已经实现它的 class 中调用接口方法有什么用,而不是像下面那样实现特定方法本身 -
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" 有什么作用?
void IActionFilter.OnActionExecuted
是该接口方法的 显式 实现。
如果将实例转换为 IActionFilter
,则只能在 MyController
实例上调用 OnActionExecuted
方法。
但是,如果您进行 隐式 实现,例如:
public void OnActionExecuted(ActionExecutedContext filterContext)
您将能够在 MyController
实例上调用 OnActionExecuted
而无需将其转换为 IActionFilter
在已经实现它的 class 中调用接口方法有什么用,而不是像下面那样实现特定方法本身 -
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" 有什么作用?
void IActionFilter.OnActionExecuted
是该接口方法的 显式 实现。
如果将实例转换为 IActionFilter
,则只能在 MyController
实例上调用 OnActionExecuted
方法。
但是,如果您进行 隐式 实现,例如:
public void OnActionExecuted(ActionExecutedContext filterContext)
您将能够在 MyController
实例上调用 OnActionExecuted
而无需将其转换为 IActionFilter