0

残念ながら、C# には C++ のようなものはありませんfriend。したがって、たとえば、古典的な行列/ベクトル乗算の例 (各クラスが他のクラスのプライベート メンバーにアクセスできるように、行列とベクトルを仲良くすることで効率が得られる) のようなものを解決するには、次のように定義する必要があります。クラス メンバーinternal.

不適切なカプセル化は遅かれ早かれ厄介なコードにつながります。internalしたがって、私は宇宙をできるだけ小さく保ちたいと思っています。

これにより、アセンブリが非常に小さくなります。

それには欠点がありますか、それとも問題ではありませんか?

4

3 に答える 3

2

タイトルの質問への回答: アセンブリはどのくらい小さくする必要がありますか?

アセンブリのサイズに関する特定の要件や推奨事項はありません*。

*理論的には非常に多くのアセンブリ (おそらく数千) は、より多くの場所で情報を検索する必要があるため、読み込みが遅くなる可能性があります。

サイズを選ぶときは、次の点を考慮してください。

  • 適切なカプセル化
  • 編集の容易さ (多数のソリューションといくつかの大規模なソリューションには、ビルド/編集/デプロイ時の欠点と利点があります)
  • 技術的な制限 (GAC 展開、部分的に信頼されたコード、任意の CPU/x86/x64 要件など)
于 2013-02-01T22:31:06.077 に答える
1

私が理解していない限り:

残念ながら、C# には C++ の友のようなものはありません。

フレンド アセンブリ (C# および Visual Basic)は存在します。C++ とまったく同じではないかもしれませんが、動作するように思えます。

于 2013-02-01T22:13:39.813 に答える
1

(API の残りの部分に対して) オープンすぎる内部原因が気に入らない場合は、互いにオープンにする必要があるクラスを、この小さなクラス セットだけを含む個別のマイクロアセンブリにします。そのアセンブリはいつでもメインの api-assembly に埋め込むことができます。

これにより、クラスが互いに開かれたままになり、他の誰も入れないようにする必要があります (アセンブリ構造をあからさまに無視し、ヘルパー アセンブリにその名前が示すよりも多くのものを配置する場合を除きます。しかし、誰がそのようなことをするでしょうか? ?! :)

于 2013-02-01T22:07:58.340 に答える