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:
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:
Protected Friend Sub MyMethod() ' Derleme içinde ve derleme dışındaki miras alanlar için erişilebilir End Sub
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.