为了账号安全,请及时绑定邮箱和手机立即绑定

为什么C#不提供C ++样式的“ friend”关键字?

为什么C#不提供C ++样式的“ friend”关键字?

慕尼黑5688855 2019-10-08 10:45:35
在C ++朋友关键字允许class A指定class B作为其朋友。这允许Class B访问的private/ protected成员class A。我从来没有读过任何有关为什么C#(和VB.NET)不包含此内容的信息。这个早期的StackOverflow问题的大多数答案似乎都在说它是C ++的有用组成部分,并且有充分的理由使用它。以我的经验,我必须同意。在我看来,另一个问题实际上是在问如何friend在C#应用程序中执行类似的操作。尽管答案通常围绕嵌套类,但似乎并不像使用friend关键字那样优雅。原始的《设计模式》一书在整个示例中都定期使用它。因此,总而言之,为什么friendC#缺少它?在C#中模拟它的“最佳实践”方法是什么?(顺便说一句,internal关键字不是同一回事,它允许整个程序集中的所有类访问internal成员,而friend允许您为某个类提供对另一个类的完全访问权限)
查看完整描述

4 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

通过使用C#中的接口,您应该能够完成与“朋友”在C ++中相同的工作。它要求您明确定义在两个类之间传递的成员,这是额外的工作,但也可能使代码更易于理解。

如果有人举了一个合理使用“朋友”的示例,而该示例不能使用界面来模拟,请分享一下!我想更好地了解C ++和C#之间的区别。


查看完整回答
反对 回复 2019-10-08
  • 4 回答
  • 0 关注
  • 1275 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信