C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: [VB.NET] クロージャ・関数型 について


(過去ログ 16 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■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って呼ばれています。


毎度わけのわからん質問で済みません。



引用返信 編集キー/
■5693 / inTopicNo.2)  Re[1]: [VB.NET] クロージャ・関数型 について
□投稿者/ まさる (9回)-(2007/07/20(Fri) 18:09:20)
「同じ型の引数を持つ複数のメソッドを切り替えたい」ということで良いでしょうか?

良いということならば、デリゲートについて調べてみてください。
あとはStrategyパターンとかもご希望が満たせるかもしれません。
引用返信 編集キー/
■5757 / inTopicNo.3)  Re[2]: [VB.NET] クロージャ・関数型 について
□投稿者/ mあ (27回)-(2007/07/23(Mon) 10:17:03)
No5693 (まさる さん) に返信
> 「同じ型の引数を持つ複数のメソッドを切り替えたい」ということで良いでしょうか?
>
> 良いということならば、デリゲートについて調べてみてください。

ありがとうございます。これ使えそうです。

> あとはStrategyパターンとかもご希望が満たせるかもしれません。

こちらはなんとなーくわかったような分からないような。
頭が死後硬直なんで、とりあえず Delegate を覚えてからゆっくりまったりします。

ありがとうございました。

# 結局 土日は三国志大戦 やって終わりでした。
# .NET のかけらも見なかったです。

引用返信 編集キー/
■5758 / inTopicNo.4)  Re[3]: [VB.NET] クロージャ・関数型 について
□投稿者/ mあ (28回)-(2007/07/23(Mon) 10:18:14)
解決です。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -