You cannot set a default value for an interface property.
Use an abstract class in addition to the interface (which only sets the default and does not implement anything):
public interface IA { int Prop { get; } void F(); } public abstract class ABase : IA { public virtual int Prop { get { return 0; } } public abstract void F(); } public class A : ABase { public override void F() { } }
source share