■5688 / inTopicNo.1) |
[VB.NET] クロージャ・関数型 について |
□投稿者/ mあ (25回)-(2007/07/20(Fri) 17:17:05)
|
分類:[.NET 全般]
VS.NET2005(VB) Version8.0.5 / Oracle10i VB.NET 超初心者です。 始めてまだ1時間経っていませんが、質問です。
VB.NET でクロージャや関数型での呼び出しみたいなの、インターフェースでもいいのですが、 似たようなやり方は出来ますでしょうか?
# クラスとかまだ分かってない部分が多いのですが、分かってないものは土日に覚えます。 # たぶん覚えないかも。「○○さんなら簡単でしょ、Javaと一緒だって」って言われても # いざ実際のコード見てみると VBScript に近いことはわかるが、Javaとは似て・・る?
# クロージャ使うには無理があるのは分かっています。普通にクラス作ってメンバメソッド # をオーバーライドして違う部分だけ派生クラスで吸収すりゃOKじゃん、なんですが。
'CSV作ってFTP転送する public shared function createCsvAndSendFtp ( byref リザルトセットの不要カラムを取り除いたものを返す画面固有処理 As Function, byref ファイル名又はバイトストリームを引数に取りテンポラリファイルを作成してFTPで投げちゃう処理 as Fucntion ) As Boolean
dim list as new ArrayList dim rs as ResultSet = リザルトセットの不要カラムを取り除いたものを返す画面固有処理()
// //リザルトセットを "," 連結の文字列にして ArrayList に格納する内部処理 //
return ファイル名又はバイトストリームを引数に取りテンポラリファイルを作成してFTPで投げちゃう処理 ( ArrayListを引数で取ってCSV出力する処理( list ) ) end function
# クラスを一杯作ることはプロジェクト上あまり推奨されていません。
★理想としては、こんなのが出来ればいいなぁと思っています。 例) function0001((new Function(){})(),new Function(){}, new Function(){});
http://www.divakk.co.jp/blog/aoyagi/archive/2006/05/24/7240.aspx ここに9からこーゆーことできるって書いてありますが、9ってのは .NET2008 のことですかね??
処理概要 (1)ストアド呼び出してワークテーブル作成する。 (2)SELECT文を発行するストアドを呼び出す。 ワークテーブルから指定した全レコードの全カラムを引っ張ってくる。 なぜ全カラム引っ張ってくるのかは、機能によっては要らないカラムがあり、ストアドでは機能区分は 意識しないため。 (3)VB側で要/不要カラムを機能別で判定して「DBのカラムの並び」でCSVを作成する。 なぜかDBのカラム並び(SELECT A,B,C FROM TBL の 順序そのまま)です。 (4)作成したCSVデータをテンポラリファイルに保存する。 (5)FTP転送してローカルを削除する。 (6)完了
という流れの中で、そのまま引数合わせれば使えそうな部分は、ArrayList を取る(4)だけです。 2画面で、作るCSVは全部で8つあります。 画面1:X1,X2,X3 画面2:X1,X2,X3,X4,X5
X1,X2,X3 はデータ内容は違いますが、カラム数、CSVファイル内の構成は同じです。 CSVと言っても、SVF帳票システムに読み込ませるデータファイルなので、普通のCSVの構成ではありませんが。 カンマ区切りというだけで、CSVって呼ばれています。
毎度わけのわからん質問で済みません。
|
|