Состав объекта C#

У меня есть класс с именем LetterRect с двумя полями типа LetterSquare. Например:

public class LetterRect : Microsoft.Xna.Framework.GameComponent
{
    private LetterSquare square1;                        
    private LetterSquare square2;
    private long indentificationNumber;
    ... other fields that are irrelevant to this question
}

Я хочу иметь возможность получить ссылку на объект LetterRect через square1 и square2. Моим первоначальным решением было дать LetterRect и соответствующие square1 и square2 одно и то же идентификационный номер с длинным целым числом. Однако есть ли способ получить доступ к LetterRect без идентификационного номера? Определенно, это не отношения наследования, это композиция или отношения "есть". Если я правильно помню, в Java есть понятие внутреннего класса, где внутренний класс может напрямую ссылаться на экземпляр класса, членом которого он является. Итак, есть ли лучший способ получить ссылку на объект LetterRect через square1 и square2?

Спасибо за помощь!

1 ответ

Решение

Попробуй это;

public class LetterRect : Microsoft.Xna.Framework.GameComponent
{
    private LetterSquare square1;
    private LetterSquare square2;
    public LetterRect()
    {
        square1 = new LetterSquare(this);
        square2 = new LetterSquare(this);
    }
}

public class LetterSquare 
{
    public LetterRect LetterRectProp { get; private set; }
    public LetterSquare (LetterRect letterRect )
    {
        this.LetterRectProp = letterRect;
    }
}
Другие вопросы по тегам