इंटरफ़ेस सार्वजनिक एपीआई को परिभाषित करता है। यदि सार्वजनिक API में केवल गेटटर होता है, तो आप इंटरफ़ेस में केवल गेटटर को परिभाषित करते हैं:
public interface IBar
{
int Foo { get; }
}
निजी सेटर सार्वजनिक एपी (किसी अन्य निजी सदस्य के रूप में) का हिस्सा नहीं है, इस प्रकार आप इसे इंटरफ़ेस में परिभाषित नहीं कर सकते हैं। लेकिन आप इंटरफ़ेस कार्यान्वयन के लिए किसी भी (निजी) सदस्यों को जोड़ने के लिए स्वतंत्र हैं। वास्तव में इससे कोई फर्क नहीं पड़ता कि क्या सेटर को सार्वजनिक या निजी के रूप में लागू किया जाएगा, या यदि सेटर होगा:
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
सेटर इंटरफ़ेस का हिस्सा नहीं है, इसलिए इसे आपके इंटरफ़ेस के माध्यम से नहीं बुलाया जा सकता है:
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