我在为图形界面课程做的练习中遇到了一些问题。我正在用这种方式编写F#程序:
我会将A中重写的OnPaint方法用于B中定义的重写OnPaint方法(显然,A中的OnPaint方法在A类中定义,这意味着我必须实例化A类对象)。 / p>
我的问题是:我怎么能这样做?我是否需要在A中定义一个方法,在该方法中,我使用A的OnPaint方法的相同任务传递PaintEventArgs.Graphics参数,而不是覆盖A中的OnPaint方法?
一个例子: 我要做这样的事情:
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)
或者这两个版本是一样的吗?
我问这个是因为第一个版本经常出现问题。