SORU
12 Mayıs 2014, PAZARTESİ


Neden alıcı arabirimi, yalnızca açık bir uygulama üzerinde özel bir pasör olması yasak?

Meyilli bir iyilik açık arabirim uygulamaları üzerinde örtülü olanlar, bence programlama arayüzü olarak karşı karşı karşı bir uygulama, genellikle tercih, artı zaman ile ilgili web hizmetleri, çoğu kez bir zorunluluk.

Bu, aşağıdaki açık arabirim bildirimi ile yasadışı ve yasal örtülü bir merak ediyordum " dedi

interface IConnection
{
    string ConnectionString { get; }
}

class Connection1 : IConnection
{
    // private set is illegal, won't compile
    string IConnection.ConnectionString { get; private set; }
}

class Connection2 : IConnection
{
    // private set is legal now, it is not part of the interface
    string ConnectionString { get; private set; }
}

Bunu düzeltmek için nasıl biliyorum yasal bir açık ve kapalı arayüz de var, örtülü arayüzü uygulaması tamamen özel yapabilirim artı.

Henüz bunun arkasındaki mantık hakkında merak ediyorum. Çünkü teknik olarak, dahili olarak derlenmiş özel yöntem set_IConnection_ConnectionString arayüzü, doğru parçası olması gerekmez mi? Sadece örtülü bir uygulama durumu olduğu gibi yardımcı bir pasör, arabirimi bir parçası olarak görmekteyiz.

Güncelleme: bir bonus olarak alırsınız görünüşte kafa karıştırıcı ve bence çok doğru derleme değil hata şu:

Erişimci erişilebilirlik değiştirici özellik Connection1 daha kısıtlayıcı olmalıdır.ConnectionString

Affedersinizdaha kısıtlayıcıprivate nasıl daha... ne?

CEVAP
12 Mayıs 2014, PAZARTESİ


Tek yolçağırmakaçık arabirim üyesi doğru arabirim için nesne artığını ve bu arabirimdeki üye çağırmak. Ama IConnection, IConnection.ConnectionString atama bir kere hayır ayarlayıcı vardır.

Yol yok hayırçağırmakbu özel ayarlayıcı yöntemi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • TecNoob

    TecNoob

    15 AĞUSTOS 2013
  • thetrollska

    thetrollska

    2 EKİM 2009
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007