Связывание экземпляров двух классов вместе - PullRequest
0 голосов
/ 22 марта 2019

Программирую новичка здесь, и я ломаю голову над этим уже несколько часов.

Я могу создать объект координат, но затем я хочу создать точечный объект, который может обращаться к полям координат из объекта 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 Ответ

1 голос
/ 22 марта 2019

Вот что вы ищете для «связывания» ваших занятий. В объектно-ориентированном программировании это называется композиция .

Таким образом, вы можете использовать функциональность и данные Coordinate-instance внутри вашего класса Dot.

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 ..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...