views:

317

answers:

3

What does the 'friend' modifier do in VB.NET?

Why is it the default modifier for GUI components in Visual Studio?

+1  A: 

AFAIK the friend access modifier does not exist in C#.

Do you mean Friend Assemblies?

Alex
I believe VB.Net `friend` is equivalent to C# `internal`, like DannyLane says in his answer
MarkJ
+8  A: 

friend in VB.Net is the same as internal in C#, it means that it can be accessed anywhere in the same assembly, but not from other assemblies.

I think it's a sensible default since I would say that normally one assembly should not be using another assembly's GUI controls (unless it's a class library or similar that is built for the purpose).

ho1
I would go further and say that `Private` would be a better default modifier. Directly accessing another object's GUI controls is poor practise and will lead to tightly-coupled code that's hard to modify.
MarkJ
Well, I'm not disagreeing about best practices, but I assume it defaults to friend to make it easier for beginners to get started or something like that.
ho1
+1  A: 

Friend is available in VB: The Friend (Visual Basic) keyword in the declaration statement specifies that the elements are accessible from within the same assembly, From here

I believe the c# version is Internal

DannyLane