using System; interface InterfaceContravariat { T Prop { set; } T this[int arg] { set; } } interface InterfaceCovariant { T Prop { get; } T this[int arg] { get; } } class A : InterfaceContravariat, InterfaceCovariant { public static int Main () { return 0; } int InterfaceContravariat.Prop { set { throw new NotImplementedException (); } } int InterfaceContravariat.this[int arg] { set { throw new NotImplementedException (); } } long InterfaceCovariant.Prop { get { throw new NotImplementedException (); } } long InterfaceCovariant.this[int arg] { get { throw new NotImplementedException (); } } }