Почему C # не предоставляет ключевое слово «друг» в стиле C ++? [закрыто]

C ++ ключевое слово друга позволяетclass A обозначитьclass B как его друг. Это позволяетClass B чтобы получить доступ кprivate/protected Членыclass A.

Я никогда не читал ничего о том, почему это осталось за пределами C # (и VB.NET). Большинство ответов на этопредыдущий вопрос StackOverflow кажется, говорят, что это полезная часть C ++, и есть веские причины для ее использования. По своему опыту я бы согласился.

Другаявопрос мне кажется, действительно спрашивают, как сделать что-то похожее наfriend в приложении C #. Хотя ответы, как правило, связаны с вложенными классами, это не так элегантно, как использованиеfriend ключевое слово.

ОригиналКнига "Шаблоны дизайна" регулярно использует его в своих примерах.

Итак, в заключение, почемуfriend отсутствует в C #, и каков «наилучший метод» (или способы) его моделирования в C #?

(Кстати,internal ключевое словоне то же самое, это позволяетвсе классы во всей сборке для доступаinternal члены, аfriend позволяет дать определенный классполный доступ вровно один другой класс)

Ответы на вопрос(23)

Ваш ответ на вопрос