- PR -

C# パラメータの型が異なるメソッドを格納する方法

投稿者投稿内容
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-05-07 22:25
私も、コマンドパターン(か Memento パターン)だと思います。
undo/redo の実装と似ているのではないでしょうか。

引用:

ひろしさんの書き込み (2007-05-07 15:30) より:
やはり、Reflectionを使うしか方法が無いのでしょうか?


リフレクションは、ふつうのアプリケーションを作る際には、めったなことで使うものではないと思います。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2007-05-10 11:50
ご回答ありがとうございます。
説明が下手ですみませんでした。

例えば蓄積されたデータを決められた手順で整形して帳票印刷したい場合
を想定します。毎回データの内容が異なるので描画指示の回数も命令の種
類も変化します。ただし、整形する手順は決められていますから、印刷を
開始する時点で必要な情報は全て揃っています。

このような場合、イメージファイルを作成しておいて逐次実行する方法、
あるいは、同様のことをメモリ上のstring[]で実現するというアイデアは
良い解決策だと感じました。
> 次のようなイメージのファイルにしてはどうでしょうか?
> DrawString,abc,FontA,Brush1,0,0
> DrawImage,Filename.bmp,10,20
> DrawLine,Pen1,15,15,20,20

結局、シグネチャが異なるメソッドを統一的に扱おうとすると
Reflectionを使うか、string等に置き換えて逐次解釈するしか
仕方が無いのでしょうか。
やはり、妙案はなさそうですね。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-05-10 12:00
引用:

ひろしさんの書き込み (2007-05-10 11:50) より:

例えば蓄積されたデータを決められた手順で整形して帳票印刷したい場合
を想定します。毎回データの内容が異なるので描画指示の回数も命令の種
類も変化します。ただし、整形する手順は決められていますから、印刷を
開始する時点で必要な情報は全て揃っています。

> DrawString,abc,FontA,Brush1,0,0
> DrawImage,Filename.bmp,10,20
> DrawLine,Pen1,15,15,20,20


DrawString, DrawImage, DrawLine それぞれのクラスを作って、
テンプレートパターンで実装すればいけそうな感じがします。
_________________
かるあ のメモスニペット
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2007-05-10 12:40
帳票データは、どんな感じで格納されてます?

csv? xml? DB? その他?

どの辺りで、不満を感じているのでしょうか?
文字列配列に入れるのがやだったら、こんなのもありかも。

コード:
Class DrawObject
  描画方法 As DrawType <- Enum で宣言しておく
 開始点 As Point
  終了点 As Point <- DrawString とか、DrawImage では、使わない
  色 As Color
  幅 As Integer <- DrawString とかでは、使わない
End Class


スキルアップ/キャリアアップ(JOB@IT)