Antarmuka mendefinisikan API publik. Jika API publik hanya berisi pengambil, maka Anda menetapkan hanya pengambil dalam antarmuka:
public interface IBar
{
int Foo { get; }
}
Setter pribadi bukan bagian dari api publik (seperti anggota pribadi lainnya), sehingga Anda tidak dapat mendefinisikannya dalam antarmuka. Tetapi Anda bebas menambahkan anggota (pribadi) apa pun ke implementasi antarmuka. Sebenarnya tidak masalah apakah setter akan diimplementasikan sebagai publik atau pribadi, atau jika akan ada setter:
public int Foo { get; set; } // public
public int Foo { get; private set; } // private
public int Foo
{
get { return _foo; } // no setter
}
public void Poop(); // this member also not part of interface
Setter bukan bagian dari antarmuka, sehingga tidak dapat dipanggil melalui antarmuka Anda:
IBar bar = new Bar();
bar.Foo = 42; // will not work thus setter is not defined in interface
bar.Poop(); // will not work thus Poop is not defined in interface