实现接口C#

Dan*_*iel 9 c# interface

我不是C#的新手,但我发现了一个有点令人费解的行为.

我有一个界面

public interface IApplicationPage
{
    Person ThePerson { get; set;  }
    Application Application { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我在页面上实现了界面

public partial class tripapplication2 : System.Web.UI.Page, IApplicationPage
{
    Person IApplicationPage.ThePerson { get; set; }
    Application IApplicationPage.IApplicationPage.Application { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在页面本身引用ThePerson时,我需要跳过箍.例如.

1)ThePerson.Birthday

提出错误说"当前上下文中不存在名称'ThePerson'."

2)((IMissionTripApplicationPage)这个.)ThePerson.Birthday

这有效,但看起来很糟糕.

有没有更好的方法来引用已实现的属性?

Jar*_*Par 23

看起来你在样品中留下了一条线.我相信实施中的ThePerson系列应该阅读

Person IApplicationPage.ThePerson { get; set; }
Run Code Online (Sandbox Code Playgroud)

这种类型的实现称为显式接口实现.这意味着只有在通过接口类型的引用看到对象时才能查看该成员.

如果希望通过具体类型引用查看成员,请将其公开并删除显式实现

public Person ThePerson { get; set; }
Run Code Online (Sandbox Code Playgroud)