2013-08-15 13 views

cevap

164

arayüzde Sınıfınızda bir private setter olması uzatabilirsiniz,

interface IFoo 
{ 
    string Name { get; } 
} 

Ancak mülkünüz için sadece getter tanımlayabilirsiniz. ,

public interface IBar 
{ 
    int Foo { get; }  
} 

Özel ayarlayıcı (başka bir özel üye olarak) Kamu API parçası olmayan böylece arayüzünde tanımlayamazsınız: genel API sadece gaz giderici içeriyorsa, o zaman arayüzde sadece getter tanımlar. Ancak, uygulama arayüzüne herhangi bir (özel) üye eklemekte özgürsünüz.

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 
:

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 arayüzünün bir parçası değildir, bu nedenle arayüzü üzerinden çağrılamaz: Aslında ayarlayıcı genel veya özel olarak uygulanacaktır, yoksa setter olacaksa farketmez

+1

Teşekkürler, beni kurtardınız –

+8

Nedense bunu hatırlayamıyorum. Bu sayfada Google ile 13 kez kariyerime girdim. LOL – Dan

+1

@Dan Yalnız değilsiniz: D – Vahid

17

Arayüz kamu API tanımlar -

İlgili konular