相关疑难解决方法(0)

为什么使用显式接口实现来调用受保护的方法?

在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.不过,我不确定为什么作者这样做.

有谁知道这种界面实现的更多好处?

c# interface implicit explicit-interface

10
推荐指数
1
解决办法
2689
查看次数

标签 统计

c# ×1

explicit-interface ×1

implicit ×1

interface ×1