在codeplex中浏览ASP.NET MVC源代码时,我发现有一个类显式实现接口是很常见的.显式实现的方法/属性然后调用具有相同名称的另一个"受保护的虚拟"方法/属性.
例如,
public class MvcHandler : IHttpHandler, IRequiresSessionState
{
protected virtual bool IsReusable
{
get
{
return false;
}
}
bool IHttpHandler.IsReusable
{
get
{
return IsReusable;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我现在确定这种编程的好处是什么.对我来说,我更喜欢隐式实现接口IHttpHandler.
我猜作者只是不希望MvcHandler有一个公共属性IsResuable.仅当MvcHandler的实例被视为IHttpHandler时,才能使用属性IsReusable.不过,我不确定为什么作者这样做.
有谁知道这种界面实现的更多好处?