2017-03-27 8 views
-4

なぜ私たちはプライベートクラスをC#で作成するのですか?私たちは、プライベートクラスは基本クラスを作ることができないことを知っているので、それらからクラスを派生させることはできませんでした。プライベートクラスの使用目的は何ですか?C#でプライベートクラスを使用する理由

+0

私たちは私物を持っているのと同じ理由で。それ以外のクラスでは他に何ができますか?ああ、そうです、私たちはそれらをインスタンス化するか、静的メンバーに電話します。なぜあなたの質問はそれらのクラスの使用を無視しますか? –

+0

この質問は悪いことかもしれませんが、「主に意見に基づいた」ものではないので、近い票は偽です。 OPは、クラスの唯一の目的はそれらから派生することであると仮定していると誤解されていますが、それらを使用することは決してありません。そのエラーを過ぎて、問題は単純に何らかの民間企業が存在する理由であり、それは十分に確立されており、意見の問題ではありません。 –

答えて

2

encapsulationという概念のために、スコープの制御が重要であるため、プライベートクラス(またはプライベートなもの)が重要です。

ライブラリーを構築する場合は、プライベートクラスが使用できますが、ライブラリーはそれらのクラスを使用できますが、ライブラリーを使用している人は誰でもライブクラスを見ることはできません。これにより、隠蔽したい実装固有の詳細を隠すことができます。

プライベートネストされたクラスを持つクラスを作成する場合、そのクラスを含むクラスは、他の誰もそれらを見ることができないプライベートクラスを使用できます。ここでも、これを使用して、隠蔽したい実装固有の詳細を隠すことができます。

実装固有の詳細を非表示にしていない場合(たとえば、プライベートクラスをパブリックにする)、ライブラリのユーザーが依存関係を作成していないことを確認できないため、実装を変更するのが難しくなります。それらのクラス。しかし、プライベートであれば、外部の依存関係を乱す心配なしに、それらを変更したり、置き換えたり、削除したりすることができます。

2

私たちのコードを別々の論理ユニットに分割することは、良い慣行と広く考えられています。各ユニットには、すべて関連する制限事項がいくつかあります。これにより、コードのテストが容易になり、十分にテストされれば、それらのユニットは、より複雑なパターンを作成できるビルディングブロックになります。プライベートクラスは、必ずしもライブラリを使用して他のプロジェクトに表示される必要のない内部機能を実装するビルディングブロックを作成する場合に便利です。インターフェースを実装することもできます。したがって、ファクトリを設定して、クラスのインスタンスを作成するように設定すると便利です。呼び出し元は、インターフェースを介してクラスを使用できます。クラス型そのもの。

0

プライベートクラスは、ネストされたクラス内でのみ作成することができ、アクセスを制限し、このネストされたクラス内でのみ使用するために使用されます。

+0

私は、プライベートクラスはネストされたクラスだけであることを意味すると思います。ネストされたクラスの内部にある必要はありません。それらは外部クラスでのみ*使用できます。 –

関連する問題