4

C# でネストされたクラスを使用するのが適切な場合を知りたいですか? その使用が不当であり、したがって正しくないという事件はありますか?

両方の状況の例を挙げることができればありがとう

4

6 に答える 6

8

主に親クラス内で使用されるデータの形式をカプセル化する必要がある場合は、ネストされたクラスを使用すると便利です。これは通常、データの目的または形式が親クラスに合わせて作成されているため、ソリューション内での幅広い使用にはあまり適していないためです。

于 2011-03-23T09:13:45.763 に答える
2

ネストされたクラスの簡単な基本的な紹介を次に示します。

Nested_Classes

于 2011-03-23T09:22:05.443 に答える
1

C# にはusing、クラスを対象とするディレクティブを記述する方法がないため、クラス名を修飾子として記述せずにクラスの静的メンバーにアクセスできます (import staticそれが可能な Java の と比較してください)。

そのため、クラスのユーザーにとっては、パブリック クラスを名前空間の直接のメンバーとして作成し、他のパブリック クラス内にネストしない方が便利です。usingそうすれば、ディレクティブを使用してそれらをグローバル名前空間にプルできます。

プライベート クラスの場合は、できればコードの読みやすさを向上させるために、それらを使用する場所の近くに置きます。

于 2011-03-23T09:27:11.850 に答える
0

ネストされたクラスのユーザーは、以下のようなシナリオに依存します。

1) 2 つのオブジェクト間に特別な関係がある現実世界の状況に合わせてコードを整理する。2) クラスを別のクラス内に隠して、内部クラスが内部で作成されたクラスの外部から使用されないようにする。

A と B という 2 つのクラスがあり、クラス B がクラス A なしでクラス A に依存しているとします。クラス B @ は使用できません。そのシナリオでは、ネストされたクラスを使用できます。

私の知識によると

DataRow クラスは DataTable のネストされたクラスです。つまり、DataTable クラスのオブジェクトを宣言するまで DataRow クラスを作成できません。

于 2011-03-23T09:34:44.543 に答える
0

私の世界にネストされたクラスの余地があるかどうかはわかりません。それは単に私にとってデザインをぼかすだけです. クラス内の情報を非表示にする必要がある場合、それをメンバー変数に格納してみませんか?

さらに、クラスの代わりにスタブを挿入する機能がなければ、テストはより面倒になります。

于 2011-03-23T09:34:22.160 に答える
0

私は2つの主な理由を見つけました:

  1. クラスの名前を台無しにすることなくパーソナライズします。
    例: Vercas.ExplorerView、意味を損なうことなくクラスの名前をパーソナライズします。

  2. プライベートクラス。
    例:Vercas.ExplorerView.Itemは 内でのみ使用されVercas.ExplorerViewます。

于 2011-03-23T10:00:09.393 に答える