2010-12-10 35 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(数据传输对象),但想知道是否有更简单的方法来做到这一点。我猜测它可能是一个数组传递到Save方法,然后a像这样每个循环..

foreach item array SaveImage(item [0],item [1],item [2]); }

如果任何人有任何想法,将是伟大的。

在此先感谢

汤姆

+0

为什么不直接调用'SaveImage'?你真的想做什么?是否应该以某种方式从用户那里获得有关“保存什么”的信息? “SaveImage”的参数意味着什么? – 2010-12-10 12:52:03

+0

通常我想直接调用Save,但是在该方法内部还有其他代码正在处理图像时应该只运行一次。我不想多次处理相同的图像。基本上我受当前方法的限制。无论如何感谢您的帮助:-) – tmutton 2010-12-10 13:17:20

回答

2

如何:

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

其中ImageInfo是:

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 2010-12-10 13:02:55

+0

那么,你不能硬编码这些值。你从哪里获得项目中的这些价值?您可以改用该类型。在你的项目中创建一个'DTO'确实没有什么坏处。因为它只是一个'DTO',并且与'Business Logic'无关。 – decyclone 2010-12-10 13:05:30

+0

好的。我喜欢保持你看到的东西整洁,但如果它与业务逻辑无关,那就没关系。 我会用这个来保存用户文本指定的位置,名称等图像。感谢您的帮助。 – tmutton 2010-12-10 13:08:57