我不是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; }