อินเตอร์เฟสกำหนด API สาธารณะ หาก public API มีเพียง getter ดังนั้นคุณจะต้องกำหนดเฉพาะ getter ในส่วนต่อประสาน:
public interface IBar
{
int Foo { get; }
}
Private setter ไม่ได้เป็นส่วนหนึ่งของ api สาธารณะ (เป็นสมาชิกส่วนตัวอื่น ๆ ) ดังนั้นคุณจึงไม่สามารถกำหนดได้ในส่วนต่อประสาน แต่คุณมีอิสระที่จะเพิ่มสมาชิก (ส่วนตัว) ใด ๆ ในการปรับใช้อินเตอร์เฟส จริงๆแล้วมันไม่สำคัญว่าตัวเซ็ตเตอร์จะถูกใช้งานเป็นสาธารณะหรือส่วนตัวหรือว่าจะมีเซ็ตเตอร์:
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 ไม่ได้เป็นส่วนหนึ่งของส่วนต่อประสานดังนั้นจึงไม่สามารถเรียกผ่านส่วนต่อประสานของคุณได้:
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