#800 – A Property in an Interface May Include One or Two Accessors

Defining a property in an interface, you can define one or both of the property’s accessors.

    public interface IDogInfo
        int CollarSize { get; set; }
        string Name { get; }
        string SecretName { set; }

When you implement an interface, if a property in the interface has both accessors, you must implement both accessors, and both must be public (you set an access modifier of public on the entire property).

If a property in the interface includes only one accessor, you must implement that accessor, but you can optionally also implement the other accessor.

    public class Dog : IDogInfo
        public int CollarSize { get; set; }

        // IDogInfo has just get
        public string Name
            get { return "NotImpl"; }

        // IDogInfo has just set, but we add a get
        public string SecretName { protected get; set; }