ループ(または他の)「外側」処理の抽象化を可能にするC#の言語構成はありますか?スケルトン処理の抽出(C#)
私は非常にストレートな前方ネスト構造(intのリストのリスト)と、最下位レベルのintのそれぞれを "回転"するコードを持っています。コードは複雑ではありません(特に長いです)が、私は独立した最低レベルと "相互作用"する必要がある複数の関数を持っており、ループスケルトンをコピーするだけです。私に無駄なようだ。
foreach (list in outerlists)
... a few random lines of structure traversing
foreach (int in list)
do something simple to int
これは明らかに縮小した例であるが、私の現実の世界は似ている - 私は仕事の比較的少ない内側の行を変更するために繰り返し外処理をコピーしてしまいます。
私の暫定的な解決策は、ループを含む「処理」メソッドを作成し、どの内部関数を呼び出すかを示す列挙(または何か)のパラメータを取ることです。次に、適切なサブ関数を呼び出すdo somethingレベルでswitch文を実行します。
私は正しい道にいるのですか、それとも簡単な方法がありますか?私は関数のポインタの概念(単に処理ループに関数ポインタを渡し、何かのレベルでそれを呼び出す)のコンセプトでswitch文を取り除くことができますが、C#で可能かどうかわからないのですか?
答えとそのサンプル(申し訳ありません@Oded - サンプルコードが違いを作ってくれてありがとう)をありがとう。私はデリゲートを少し見ていたが、すべてのチュートリアルやヘルプファイルはイベントに結びついているように見えたので、私は移動した。これは本当に役に立ちます。 – ktharsis