2

プライベート クラスの場合、プロパティをパブリックまたはフレンド (C# の内部) として宣言する必要がありますか? My Private Class は、親クラス以外の他のクラスからはアクセスできません。

4

2 に答える 2

2

一般に、カプセル化をそのまま維持するようにしてください。クラス間の関係は、「知る必要」に基づいている必要があります。

私はあなたのアプリケーション設計に精通していないので、単純化しすぎていると思いますが、次の質問を自問します。

  • 親クラスは、サブクラスを知る必要がある唯一のクラスですか? もしそうなら、それはあるべきですprivate

  • そうでない場合、サブクラスが同じプロジェクトにあることを知る必要がある他のすべてのエンティティはありますか? もしそうなら、それはあるべきですinternal

  • サブクラスについて知る必要があるプロジェクトの外部にエンティティがある場合、それはpublic.

プロパティについて。サブクラスを持つことにした場合private、プロパティを作成しても意味がありませんpublic
クラスのインスタンスを持つことができる唯一のオブジェクトは、同じプロジェクトにある親クラスであるinternalため、プロパティには十分なはずです。

C# には修飾子
がありません。friendその代わりにinternal、または 最も似ているが洗練されていないオプションを使用できます: InternalsVisibleTo

于 2013-12-26T09:09:37.573 に答える
1

あなたのクラス(ネストされたもの)はprivate、それにアクセスできる唯一の人であるため、そのコンテナ(基本または親クラス)です。この場合public、or internal( FriendVB では) は違いはありません。ネストされたクラスにアクセスできるのはその親だけだからです。一般に、いつかアクセス修飾子を に変更したい場合は、public今それを予測して と のいずれかを選択することinternalをお勧めしますpublic。ネストされたクラスのメンバーを、それが定義されているアセンブリ内でのみ表示する場合は、単純です。internalそれ以外の場合は、使用を検討してpublicください。

于 2013-12-26T09:20:26.647 に答える