Warum stellt C # das C ++ - Stil-Friend-Keyword nicht zur Verfügung?

Den C++ friend-Schlüsselwort ermöglicht eine class A zu benennen class B wie sein Freund. Dies ermöglicht Class B Zugriff auf die private/protected Mitglieder class A.

Habe ich noch nichts gelesen, warum dies wurde in C# (und VB.NET). Die meisten Antworten auf diese früher StackOverflow-Frage scheinen zu sagen es ist ein nützliches Teil von C++ und es gibt gute Gründe, es zu benutzen. In meiner Erfahrung würde ich Zustimmen.

Anderen Frage scheint mir zu sein, wirklich zu Fragen, wie etwas zu tun, ähnlich wie friend in einer C# - Anwendung. Während die Antworten in der Regel drehen sich um geschachtelte Klassen, es scheint nicht ganz so elegant wie mit der friend Stichwort.

Original Design-Patterns-Buch verwendet es regelmäßig in seinen Beispielen.

So, in Zusammenfassung, warum ist friend fehlen von C#, und was ist "best practice" - Weg (oder die Wege) zu simulieren, die es in C#?

(Durch die Art und Weise, die internal Schlüsselwort ist nicht das gleiche, es ermöglicht alle Klassen innerhalb der gesamten assembly für den Zugriff auf internal Mitglieder, während friend ermöglicht es Ihnen, eine bestimmte Klasse vollständigen Zugriff zu genau eine anderen Klasse)

InformationsquelleAutor der Frage Ash | 2008-10-15

Schreibe einen Kommentar