在编程中拥有朋友或多或少被认为是“肮脏的”并且易于滥用。它破坏了类之间的关系,并破坏了OO语言的一些基本属性。
话虽这么说,这是一个很好的功能,我自己在C 中已经使用了很多次。并且也想在C#中使用它。但是我打赌,因为C#的“纯” OOness(与C
的伪OOness相比),MS决定因为Java没有朋友关键字,C#也不应该(只是在开玩笑;))
值得一提的是:内部不如朋友好,但确实可以完成工作。请记住,很少会不通过DLL将代码分发给第三方开发人员。因此,只要您和您的团队了解内部类及其使用,您就可以了。
编辑 让我澄清一下,Friendly关键字如何破坏OOP。
私有和受保护的变量和方法可能是OOP的最重要部分之一。对象可以保存仅其可以使用的数据或逻辑的想法使您可以编写与环境无关的功能实现-
并且您的环境无法更改不适合处理的状态信息。通过使用friend,您将两个类的实现耦合在一起-如果您仅耦合两个类的接口,这会更糟。


![为什么C#不提供C ++样式的“ friend”关键字?[关闭] 为什么C#不提供C ++样式的“ friend”关键字?[关闭]](http://www.mshxw.com/aiimages/31/433044.png)
