Por que o C # não fornece a palavra-chave 'friend' no estilo C ++? [fechadas]
oPalavra-chave do amigo C ++ permite umaclass A
para designarclass B
como amigo. Isso permiteClass B
para acessar oprivate
/protected
membros declass A
.
Eu nunca li nada sobre por que isso foi deixado de fora do C # (e do VB.NET). A maioria das respostas para issopergunta anterior sobre StackOverflow parece estar dizendo que é uma parte útil do C ++ e há boas razões para usá-lo. Na minha experiência, eu teria que concordar.
OutroPergunta, questão parece-me estar realmente perguntando como fazer algo semelhante afriend
em um aplicativo C #. Embora as respostas geralmente giram em torno de classes aninhadas, não parece tão elegante quanto usar o métodofriend
palavra-chave
O originalLivro de padrões de design usa-o regularmente em todos os seus exemplos.
Então, em resumo, por que éfriend
ausente do C # e qual é a maneira (ou maneiras) de "melhor prática" de simulá-lo no C #?
(A propósito, ointernal
palavra-chave énão a mesma coisa, permitetudo classes dentro de toda a montagem para acessarinternal
membros, enquantofriend
permite que você dê uma certa aulaacesso completo paraexatamente um outra classe)