将两个类的实例链接在一起

时间:2019-03-22 17:39:55

标签: c# constructor

在这里为新手编程,我已经为此花了好几个小时的时间。

我可以创建一个坐标对象,但是接下来我想创建一个点对象,该点对象可以访问Coordinate对象中的坐标字段。如何将这两个类“链接”在一起?您对优质的YouTube视频有什么建议,可以解释我在这里缺少的内容吗?谢谢!

class Coordinate
{
    public int X { get; private set; } = 0;
    public int Y { get; private set; } = 0;
    public Coordinate(int x, int y)
    {
        x = X;
        y = Y;
    }        
}

class Dot
{
    public string color { get; set; }
    public Dot(string color, Dot dot)
    {
        this.Color = color;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Coordinate coor1 = new Coordinate(2, 3);
        Dot dot1 = new Dot("Blue", coor1);        
    }

1 个答案:

答案 0 :(得分:1)

这里是您正在寻找“链接”您的课程的内容。在面向对象的编程中,这称为composition

这样,您可以在Dot类中使用Coordinate-instance的功能和数据。

class Coordinate
{
    public int X { get; private set; }
    public int Y { get; private set; }
    public Coordinate(int x, int y)
    {
        X = x;
        Y = y;
    }        
}

class Dot
{
    public Coordinate coord { get; private set; }
    public string color { get; set; }
    public Dot(string color, Coordinate coord)
    {
        this.color = color;
        this.coord = coord;

    }
}

class Program
{
    static void Main(string[] args)
    {
        Coordinate coor1 = new Coordinate(2, 3);
        Dot dot1 = new Dot("Blue", coor1);
        Console.WriteLine(dot1.coord.X);        
    }
}

注意:我还修复了坐标构造器中可能出现的错字(设置X = x和Y = y ..)