1

私はC#が初めてなので、ご容赦ください。

リストまたは長方形のリストを使用する必要があります。私の問題は、ある要素の値を設定するたびに、他の要素も設定されていることです。

たとえば、リストのリストがサイズ 2 x 4 の「m_aRectWBLD」の場合、「m_aRectWBLD [0][0]」を設定すると、「m_aRectWBLD [1][0]」も設定されます。

Visual Studio 2010 SP1 を使用しています。私が間違っていることを教えてください。関連するコードは次のとおりです。

    private List<List<Rectangle>> m_aRectWBLD = new List<List<Rectangle>>();
    static readonly Rectangle m_Rectdef = new Rectangle(0, 0, 0, 0);

    private void ResetAllData()
    {
        List<Rectangle> aRectZero = new List<Rectangle>();

        for (int i = 0; i != 4; i++)
            aRectZero.Add(m_Rectdef);

        m_aRectWBLD.Clear();                

        for (int i = 0; i != 2; i++)
        {
            m_aRectWBLD.Add(aRectZero);
        }

        m_aRectWBLD[0][0] = new Rectangle(0, 0, 100, 100);    // after doing this both
                                                              // m_aRectWBLD[0][0] and
                                                              // m_aRectWBLD[1][0]
                                                              // have the same Rectangle value

    }

どうもありがとうございました。

4

1 に答える 1