C# · 12月 30, 2021

实现接口C#

@H_502_1@我不是C#的新手,但我发现一个有点困惑的行为.

我有一个界面

public interface IApplicationPage{ Person ThePerson { get; set; } Application Application { get; set; }}

我在一个页面上实现了界面

public partial class tripapplication2 : System.Web.UI.Page,IApplicationPage{ Person IApplicationPage.ThePerson { get; set; } Application IApplicationPage.IApplicationPage.Application { get; set; }}

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

1)ThePerson.Birthday

给出一个错误,说“ThePerson”在当前上下文中不存在.“

2)((IMissionTripApplicationPage)this).Person.Birthday

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

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

解决方法 看起来你在样品中留下了一条线.我相信ThePerson线上的实现应该读 Person IApplicationPage.ThePerson { get; set; }

这种类型的实现被称为显式接口实现.这意味着当通过接口类型的引用来查看对象时,成员将只能看到.

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

public Person ThePerson { get; set; }