حداقل جواب:
private void SaveTextBoxesWithTheirNamestartingWithtxtBox()
{ (from box in this.Controls.OfType<TextBox>()
where box.Name.StartsWith("txtBox")
select box).ToList<TextBox>().ForEach(f => SaveToFile(f, "F:\\a.dat"));
}
private void SaveToFile(object obj, string fileName)
{
System.IO.FileInfo fi = new System.IO.FileInfo(fileName);
using( System.IO.StreamWriter streamWriter = fi.AppendText() )
{
streamWriter.WriteLine(obj);
streamWriter.Write(streamWriter.NewLine);
}
}
اشکالات جوابهایه پیشین:
ا.نداشتن ایمنی نوع Type Safety
۲.بسته نشدن StreamWriter اگر با اکسپشن مواجه بشیم
۳.باعث بالا بردن اطلاعات کاربران نمیشه، از روشی که شخصا استفاده میکنیم کمتر نباید فرستاد، تازهکارها قابلیت یادگیری بهترین روشها را دارند، باید از بهترین جوابی که در زمان کنونی موجود است کمتر بهشان ندیم.
۴.استفاده از foreach دیگر قدیمی شده، استفاده از لامبدا اکسپرشن را به استفاده از ترجیح بدیم.
اشکالات این جواب:
۱.این یک روش شئیگرائی نیست، فقط با صدا زدن متدها کاری را انجام میده
۲.بدانه دانستن دلیل اینکه چرا یکی میخواهد مقدایر تکست باکسهایی را که با یک رشته بخصوص شروع میشند را ذخریه کنه، یک جواب سمبل شده که با روشهایه اصولی که میشه برایه حل مشکل واقعی استفاده بشه مغایرت دارد.
برتریهایه این جواب:
۱.قابل استفاده بودن از هر فرمی ، دوباره تمام منطق را کد نمیکنیم.
۲.مونولیتیک نیستش، یعنی اینکه یک چیز گنده را به هم نبافتیم، قابلیت استفاده شدن برایه کارهایه دیگر را به دست میده.
اگر هر کسی اشکالی برایه این جواب به فکرش بیاد لطفاً از ما دریغ نکنید، اگر این جواب جایه سوالی باز میکند لطفاً بپرسید.