2010-12-10 9 views
0

私はC#のようにメソッドを持っています。asp.net - メソッドに行を渡す

public void Save(int id) 
{ 
    SaveImage("first title", "first.jpg", true); 
    SaveImage("second title", "second.jpg", false); 
    SaveImage("third title", "third.jpg", false); 
} 

したがって、私はSave()メソッドを呼び出すときにこのダイナミックなものを作成したいので、保存したいものを指定することができます。 SaveImageを何度でも呼び出すことができ、値を設定することもできます。

私はDTO(データ転送オブジェクト)を調べましたが、これを行う簡単な方法があるかどうかを知りたいと思っています。私はそれが配列 {SaveImage(項目[0]、項目[1]、項目で保存メソッドに渡された配列、次いでこれ等の各ループの..

foreachの項目であるかもしれないことを推測しています[2]); }

誰かが素晴らしいアイデアをお持ちの場合は、事前に

おかげ

トム

+0

「SaveImage」を直接呼び出してみませんか?あなたは本当に何をしようとしていますか? 「何を保存するか」に関する情報は、何らかの形でユーザーから来るはずですか? 'SaveImage'の意味は何ですか? –

+0

通常、私はSaveを直接呼びたいと思っていますが、実際には画像を処理するときに一度しか実行しないでください。私は同じ画像を何回も処理したくありません。基本的に私は現在の方法に制約されています。とにかくあなたの助けをありがとう:-) – tmutton

答えて

2

方法について:

ImageInfoがある
public void Save(int id, IEnumerable<ImageInfo> images) 
    { 
     foreach (var image in images) 
     { 
      SaveImage(image.Title, image.Name, image.Flag); 
     } 
    } 

のように使用することができ
public class ImageInfo 
    { 
     public String Title { get; set; } 
     public String Name { get; set; } 
     public Boolean Flag { get; set; } 
    } 

public void TestSave() 
    { 
     Save(0, new ImageInfo[] { 
      new ImageInfo() { Title = "first title", Name = "first.jpg", Flag = true }, 
      new ImageInfo() { Title = "second title", Name = "second.jpg", Flag = false }, 
      new ImageInfo() { Title = "third title", Name = "third.jpg", Flag = false }, 
     }); 
    } 
+0

これは私が以前見ていたものです。正直言って良い選択肢のようだ。 Save()はクラス内にあり、TestSave()はページコードの背後にあります。私が理解できなかった唯一のことは、ImageInfoクラスをどこに配置するかということでした。私はそれのためだけに新しいクラスファイルを作成したくありませんでした。お勧めはありますか? – tmutton

+0

さて、これらの値をハードコーディングしてはいけません。あなたのプロジェクトでは、これらの価値をどこから得ていますか?代わりにそのタイプを使用できます。そして、あなたのプロジェクトにはこのような 'DTO'を作成することは本当に害です。これは単なるDTOであり、ビジネスロジックとは関係がないためです。 – decyclone

+0

ああ。私は物事をきれいに保つのが好きですが、ビジネスロジックとは関係がない場合は大丈夫です。 私は、ユーザーテキストで指定された場所、名前などで画像を保存するために使用します。あなたのお手伝いをありがとう。 – tmutton

関連する問題