La palabra clave amigo de C ++ permite que class A
a se designe class B
como amigo. Esto permite Class B
acceder a los private
/ protected
miembros de class A
.
Nunca he leído nada sobre por qué esto se dejó fuera de C # (y VB.NET). La mayoría de las respuestas a esta pregunta anterior de StackOverflow parecen estar diciendo que es una parte útil de C ++ y que hay buenas razones para usarla. En mi experiencia, tendría que estar de acuerdo.
Me parece que otra pregunta es realmente preguntar cómo hacer algo similar friend
en una aplicación C #. Si bien las respuestas generalmente giran en torno a clases anidadas, no parece tan elegante como usar la friend
palabra clave.
El libro original de Patrones de diseño lo usa regularmente en todos sus ejemplos.
En resumen, ¿por qué friend
falta en C # y cuál es la forma (o formas) de "mejores prácticas" de simularlo en C #?
(Por cierto, la internal
palabra clave no es la misma cosa, permite que todas las clases dentro de todo el ensamblado accedan a los internal
miembros, mientras friend
que le permite otorgar a cierta clase acceso completo a exactamente otra clase)