Frage

Um diese Frage SO: Was das Äquivalent von Freund C # , würde ich persönlich beantwortet „intern“ habe, wie Ja unter den Antworten hat! Allerdings, sagt Jon Skeet, dass es keine direkte Äquivalenz von VB Freund in C # ist. Wenn Jon Skeet so sagt, ich werde nicht derjenige sonst zu sagen sein! ; P

Ich frage mich, wie kann das Schlüsselwort interne (C # ) nicht das Äquivalent von Freund (VBNET), wenn ihre jeweiligen Definitionen sind:

Freund VBNET

Friend (Visual Basic) Schlüsselwort in der Deklarationsanweisung Gibt an, daß die Elemente innerhalb der gleichen Baugruppe zugegriffen werden, jedoch nicht von der Außenseite der Baugruppe. [...]

interne C #

Interne . Der Zugriff auf die aktuellen Baugruppe begrenzt

Zu meinem Verständnis, bedeuten diese Definitionen ganz mir gleich.

Dann bzw. wenn ich in VB.NET bin Codierung, verwende ich die Friend Stichwort angeben, dass eine Klasse oder eine Eigenschaft ist nur innerhalb der Baugruppe zugänglich sein, wo sie deklariert ist. Das gleiche in C #, verwende ich das interne Schlüsselwort, das gleiche zu spezifizieren.

  1. Bin ich etwas oder etwas falsch aus dieser Perspektive zu tun?

  2. Was sind die Verfeinerungen sind ich nicht?

  3. Might jemand bitte erklären, wie oder was Freund und intern sind nicht direkt Äquivalenzen?

Vielen Dank im Voraus für alle Ihre Antworten!

War es hilfreich?

Lösung

Ich habe gesagt, es gibt keine direkte Entsprechung des C ++ "Freund" -Konzept. Das ist nicht das gleiche wie das VB.NET Friend Konzept, das auf internal in C # in der Tat entspricht.

Der Kontext ist wichtig - nicht davon ausgehen, dass das gleiche Wort bedeutet genau das gleiche in allen Sprachen ... „statisch“ ist ein klassisches Beispiel:)

Andere Tipps

Jon's (original) answer makes it clear that he's referring to the C/C++ friend keyword, which grants private access to another class. There is no direct equivalent in C#, but there is a way to extend internal to another assembly, largely for testing.

As far as I understand it, VB.Net Friend is the same as C# internal.

(I wrote the above just as Jon added an answer here.)

When comparing .NET languages, VB's friend equates to C#'s internal. Meaning, anything marked as such can only be accessed from within the same project/assembly. It can be combined with protected for greater control over visibility.

The InternalsVisibleTo attribute can be useful for testing purposes; despite the name, it applies to VB as much as it does to C#. It should be noted that VB did not support the use of InternalsVisibleTo until .NET 4.

There is a rough equivalent of the C++ friend keyword in managed code. Although it works at the assembly level, not the class level. You can use the [InternalsVisibleTo] attribute.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top