Implementing interface C#

c#, interface

Solution

It looks like you left a line out in your sample. I believe the ThePerson line in the implementation should read

Person IApplicationPage.ThePerson { get; set; }

This type of implementation is known as an explicit interface implementation. This means the member will only be viewable when the object is seen through a reference of the interface type.

If you want the member to be viewable through a concrete type reference, make it public and remove the explicit implementation

public Person ThePerson { get; set; }

Problem

I'm not new to C#, but I have found a behavior that is a little puzzling. I have an interface ``` public interface IApplicationPage { Person ThePerson { get; set; } Application Application { get; set; } } ``` I implement the interface on a page ``` public partial class tripapplication2 : System.Web.UI.Page, IApplicationPage { Person IApplicationPage.ThePerson { get; set; } Application IApplicationPage.IApplicationPage.Application { get; set; } } ``` However, when I attempt to reference ThePerson in the page itself I need to jump through hoops. For example. 1) ThePerson.Birthday Gives an error saying "The name 'ThePerson' does not exist in the current context." 2) ((IMissionTripApplicationPage)this).ThePerson.Birthday This works, but it looks awful. Is there a better way to reference the implemented properties?

Original source