4

私はStackoverflowを初めて使用します。間違った質問をした場合、メンバーが私を許してくれることを願っています。C#とクラスの学習を始めたばかりです。私の頭に浮かんだ非常に基本的な質問は、クラスのオブジェクトモデル(階層)をどのように作成できるかということです。説明させてください:

たとえば、 PEXというクラスがあります。このクラスをインスタンス化すると、いくつかのプロパティ、メソッド、およびWindowsと呼ばれる別のクラスが含まれているはずです。これで、Windowsには、いくつかのメソッドとプロパティ、および別のクラスWindowも含まれるようになります。

クラスWindows&Windowは、直接アクセスするのではなく、PEXクラスを介してのみアクセスできるようにする必要があります。

Windowsは、基本的にExcelオブジェクトモデルのように、すべてのWindowインスタンスを返します。

foreach(PEX.Windowsのウィンドウウィンドウ){....}などを実行できるはずです...継承も読み取りますが、このオブジェクトモデルを配置できません。

public class PEX
{
    public _Windows Windows;

    public PEX()
    {
        Windows = new _Windows();
    }
}

public class _Windows
{
    public _Window Window;
    private int _count;

    public _Windows()
    {
        Window = new _Window();
        _count = 10;
    }

    public int Count
    {
        get { return _count; }
    }       
}

public class _Window
{

    private string _title;

    public _Window()
    {
        _title = "Roshan";
    }

    public string Title
    {
        get { return _title; }
    }
}
4

1 に答える 1

3

あなたが説明しているものは、通常、ファクトリパターンと呼ばれます。これは、親クラスが子クラスの作成を担当する場所です。Windowまた、クラス名としての使用は避けたい場合があります。これは、クラスにネストされたクラスがある簡単な例です。

public class PEX
{
 public List<PexWindow> Windows { get; set; }//list of windows you can foreach on
 public PEX()
 {
  Windows = new List<PexWindow>();//constructor to make sure the list can be worked with
 }

 private class PexWindow
 {
  public int Param { get; set; }
  public string Description { get; set; }
 }
}
于 2013-03-24T09:42:33.067 に答える