0

不幸的是,C# 没有类似 C++ 的friend. 因此,例如,为了解决经典的矩阵/向量乘法示例(其中可以通过使矩阵和向量成为朋友来提高效率,这样每个类都可以访问另一个类的私有成员),我必须定义班级成员internal

现在我了解自己了,不恰当的封装迟早会导致代码乱七八糟。因此,我想让internal宇宙尽可能小。

这将导致非常小的组件。

这有什么缺点,还是没关系?

4

3 回答 3

2

回答标题中的问题:组件应该有多小?

对组件的尺寸没有特殊要求或建议*。

*由于需要在更多地方查找信息,理论上疯狂数量的程序集(可能以数千计)可能会减慢加载速度。

挑选尺码时考虑:

  • 适当的封装
  • 易于编辑(大量解决方案与几个大型解决方案在构建/编辑/部署时都有缺点和优点)
  • 技术限制(如 GAC 部署、部分受信任的代码、任何 CPU/x86/x64 要求)
于 2013-02-01T22:31:06.077 回答
1

如果您不喜欢内部原因,它太开放了(对您的 api 的其余部分而言),请将那些需要彼此开放的类作为一个单独的微程序集,其中仅包含这一小组类。您始终可以将该程序集嵌入到您的主 api 程序集中。

这既应该让你的类对彼此开放,又不能让其他任何人进入(除非他们公然忽略你的程序集结构,并且在你的辅助程序集中放置的东西比它的名字所暗示的要多。但是谁会做这样的事情?! :)

于 2013-02-01T22:07:58.340 回答
1

除非我不明白:

不幸的是,C# 没有像 C++ 的朋友那样的东西。

Friend 程序集(C# 和 Visual Basic)确实存在。它可能不完全是 C++ 所拥有的,但听起来它会起作用。

于 2013-02-01T22:13:39.813 回答