c#对象组成

时间:2012-05-11 14:31:22

标签: c# oop object inner-classes object-composition

我有一个名为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
}

我希望能够通过square1和square2获得对LetterRect对象的引用。我最初的解决方案是给LetterRect和相应的square1和square2赋予相同的identificationNumber一个长整数。但是,有没有办法在没有识别号码的情况下访问LetterRect?绝对没有继承关系,它是一种组合,或“有一种”关系。如果我在Java中记得正确的话,那就是内部类的概念,其中内部类可以直接引用它所属的类的实例。那么,是否有更好的方法通过square1和square2来获取对LetterRect对象的引用?

感谢您的帮助!

1 个答案:

答案 0 :(得分: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;
    }
}