Как использовать переопределенные методы, определенные в классе, в другом классе?

У меня есть некоторые проблемы в упражнении, которое я делаю для курса графических интерфейсов. Я пишу программу на F#, определенную следующим образом:

  • У меня есть класс A, в котором я переопределяю метод OnPaint;
  • У меня есть другой класс B, в котором я переопределяю метод OnPaint, методы OnMouse[Down/Move/Up] и т. Д.

Я бы использовал переопределенный метод OnPaint в A в переопределенный метод OnPaint, определенный в B (очевидно, метод OnPaint в A определен в классе A, что означает, что мне нужно создать экземпляр объекта типа A).

Мой вопрос: как я могу это сделать? Нужно ли обязательно определять метод в A, в котором я передаю параметр PaintEventArgs.Graphics с теми же задачами метода OnPaint для A вместо переопределения метода OnPaint в A?

Пример: я должен сделать что-то вроде этого:

type Ellipse() =
   ...
   override this.OnPaint e =
       e.Graphics.DrawEllipse(10.f, 10.f, 30.f, 30.f)

type classThatUseEllipse() =
   let ell = new Ellipse()
   ...
   override this.OnPaint e =
      ell.OnPaint(e)

Или как то так?

type Ellipse() =
   ...
   let myOnPaint (e:PaintEventArgs) =
       e.Graphics.DrawEllipse(10.f, 10.f, 30.f, 30.f)

type classThatUseEllipse() =
   let ell = new Ellipse()
   ...
   override this.OnPaint e =
      ell.myOnPaint(e)

Или эти две версии одинаковы?

Я спрашиваю об этом, потому что часто первая версия давала проблемы.

0 ответов

Другие вопросы по тегам