Различные типы ввода в функции - PullRequest
0 голосов
/ 25 мая 2020

Я создаю свою первую библиотеку и хочу использовать разные типы ввода (пример: Graphics.DrawLine (); может определяться четырьмя числами с плавающей запятой или двумя точками и т. Д. c.) Как мне сделать похожая вещь?

1 Ответ

1 голос
/ 25 мая 2020

Вы просто создаете несколько методов с разными аргументами.

Например:

public class MyGraphics
{

    public bool Draw(Vector2 position, bool big = false)
    {
    }

    public void Draw(Line2 line)
    {
    }
    public void Draw(Triangle2 triangle)
    {
    }

    public void Draw(Polygon2 polygon)
    {
    }

    public void Draw(Line2[] edges)
    {
    }
}

для использования позже как

{
    MyGraphics g = ...
    Line2 line = ...
    Triangle2 trig = ...

    g.Draw(line);  // calls `.Draw(Line2)`
    g.Draw(trig);  // calls `.Draw(Triangle2)`
}
...