0

@overrideクラスのDrawLineメソッドを探していGraphicsますが、これが可能かどうかわかりませんか?

メソッドに検証を入れて、指定した特定の Y 変数で描画を停止し、メソッドに新しいパラメーターを効果的に追加しようとしています。

その特定のメソッドをオーバーライドすることについて、経験やアドバイスを得た人はいますか?

私はこの問題について確信が持てないので@Override、個別のピクセルポイントをプロットしているため、単純に実行して検証できるかどうかわかりません。

ありがとう。

4

2 に答える 2

1

置き換え/オーバーライドするように設計されていないメソッドを通常のコードで置き換えることはできません。

あなたはできる

  • 新しいメソッドを使用するために、すべての呼び出しアセンブリを前処理 (つまり、ILDASM/modify/ILASM) します。
  • System.Drawing アセンブリを独自のものに置き換えます
  • 単体テストに必要な場合は、 Moles やFakesなどのメソッドをオーバーライドできる既存のフレームワークを使用してください。
于 2012-09-06T00:37:51.117 に答える
1

別の方法が必要なだけです。好きな場所に置いてください:

void CheckedDrawLine(Graphics g, int x1, int y1, int x2, int y2, int stopY) {
    // Do the validation, draw the line
}

そして、それを a に貼り付けることで、それを拡張メソッドにすることができますstatic class:

void CheckedDrawLine(this Graphics g, int x1, int y1, int x2, int y2, int stopY) {
    // Do the validation, draw the line
}

g.CheckedDrawLine(...)の代わりに aを実行しCheckedDrawLine(g, ...)ます。

于 2012-09-05T23:55:30.403 に答える