ProgramlamaVB.NET Orta/Lider Geliştirici

Friend erişim belirleyicisinin Visual Basic'te nasıl çalıştığını açıklayın, kullanımına bir örnek verin ve Friend'ın diğer erişim belirleyicilerinden daha tercih edildiği durumları belirtin.

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Friend erişim belirleyicisi, bir sınıfın (metod, özellik, değişken) üyesinin bir derleme içinde erişilebilir olduğunu ancak derlemenin dışındaki kullanıcılara kapalı olduğunu belirtir. Bu, C#'taki internal'a benzer. Bu erişim seviyesi, kodun iç yüzünün "gizliliğini" sağlarken, kamuya açık API'lerin kullanılabilirliğini artırmak için yararlıdır.

Kullanım örneği:

' Tek bir proje/derleme içinde Friend Class InternalHelper Friend Sub Log(message As String) Console.WriteLine(message) End Sub End Class

InternalHelper sınıfının metodlarının yalnızca mevcut derleme içinde çağrılabileceği anlamına gelir.

Friend kullanmak için:

  • Uygulamanın diğer parçaları için erişilebilir olması gereken ama dış modüller/kütüphaneler için kapalı olan sınıf/metodlar için.
  • Erişim modellerinin uygulanması için (örneğin, iç bileşenlerin test edilmesi).

Yanıtı zorlaştıran bir soru.

Friend erişim belirleyicisi ile Protected arasındaki fark nedir? Friend olarak tanımlanan bir metod, başka bir derlemedeki türetilmiş bir sınıfta görünür mü?

Cevap:

  • Friend — yalnızca kendi derlemesi içinde erişimlidir (miras almaktan bağımsız olarak).
  • Protected — yalnızca türetilmiş sınıflarda erişimlidir (derleme sınırına bakılmaksızın).
  • Friend seviyesine sahip bir metod, mevcut derlemenin dışındaki türetilmiş sınıflarda erişilemez. Hem miras alma hem de derleme içinde erişim gerekiyorsa — Protected Friend kullanılmalıdır.
Protected Friend Sub MyMethod() ' Derleme içinde ve derleme dışındaki miras alanlar için erişilebilir End Sub

Konunun inceliklerine dair bilgi eksikliğinden kaynaklanan gerçek hata örnekleri.


Hikaye

Büyük bir projede, destekleyici sınıfların tüm mantığı Public olarak tanımlanmıştı ve bu dış entegratörlere açılmalarına neden oldu. Friend'a geçiş, iç metotların modül dışından kullanılma riskini ortadan kaldırdı ve mimari bakımını kolaylaştırdı.


Hikaye

Erişim hatası nedeniyle (Friend yerine Protected kullanıldı), yardımcı metodlar aynı projede, ancak sınıf hiyerarşisinin dışında bulunan modüler testler için erişilemez hale geldi. Kolay test desteği için Friend olarak düzeltildi.


Hikaye

Bir geliştirici, Friend'ı başka bir derlemeden yüklenen bir eklentiye metodları açmak için kullanmaya çalıştı. Sonuç olarak, eklentiler gerekli metodlara erişim elde edemediler. Çözüm — Public metodlarla arayüzlerin uygulanması, Friend'ın yalnızca iç ihtiyaçlar için kullanılmasıdır.