حالا میرسیم به قسمتی که میخوایم اون چیزی های که برنامه ریزی کردیم رو پیاده سازی کنیم
اولین چیز اینه که بتونیم یه ساختار مناسب برای فولدر بندی پیدا کنیم، چرا ؟ خوب طبیعتا اول پروژه شاید اونقدر نیازش حس نشه ولی وقتی که پروژه میخواد بزرگتر بشه این ساختار بندی خیلی کمک کننده است.
میتونیم بگیم که به طور مثال Models فولدر جایی که متد هایی که دیتا ها نگهداری میکنن و طور مثال برای نشون دادن این که این کلاس یا متد عضوی از این فولدر هستش آخر اسمش Model اضافه میکنیم , PlayerInfoModel
حالا وقتی که فولدر بندی میکنیم کلاسی که داخلش میسازیم اسمه namespace پسوند اون فولدر رو میگیره
به طور مثال توی همین پروژه اسم namespace میشه
BattleshipLibrary.Models
البته نکته ای که هست اینه که وقتی که ما اول فولدر رو ساخته باشیم و بعد داخل اون فولدر کلاس رو بسازیم اتوماتیک Models به آخر namespace اضافه میشه ولی در غیر این صورت این اتفاق نمیوفته.
namespace BattleshipLibrary.Models { public class PlayerInfoModel { } }
برای این که بخوایم سریع یه پراپرتی درست کنیم کافیه بزنیم prop بعد tab و بزنیم :)
حالا یه سوالی پیش میاد اینه که چرا ما در پروژه ها میایم از library استفاده میکنیم؟ جوابش اینه که اگر در آینده بخوایم از console app بریم به win form فقط لازمه که ساختار کد و console app رو عوض کنیم و اینطوری پروژه انعطاف بیشتری داره و این که میتونیم از این library در پروژه های دیگه هم استفاده کرد.
و از اینجا به این نکته میرسیم که کد هایی که مرتبط با ui نیستند رو همشون رو در library بنویسیم.
خوب بعد از این که library رو ساختیم میایم و یه console app میسازیم و بعد میایم اون library که ساختیم رو در قسمت dependency اضافه میکنیم.
نکته یادمون باشه که حتما بیایم library رو در قسمت پروژه ی اصلی تعریف کنیم:
using BattleshipLibrary;
نکته : حالا یه راه دیگه هم برای اضافه کردن به dependecy هستش، اونم اینه که اسم library بنویسیم روش هاور کنیم و بعد CTL + . رو بزنیم و از اونجا انتخابش کنیم که به پروژه وصل بشه.
نکته: برای این که تعیین که کدوم پروژه استارت و شروع باشه، میزنیم روی پروژه ، کلیک راست میکنیم و بعد set as startup project رو انتخاب میکنیم.
دقت کنید که library ها میتونند به هم depended باشند ولی وابسته کردن یک library به Ui کاره کاملا اشتباهیه.
نکته برای خلاصه سازی در کد:
public static void InitializeGrid(PlayerInfoModel model){ List<string> letters = new List<string>(); letters.Add('A'); letters.Add('B'); letters.Add('C'); letters.Add('D'); letters.Add('E'); }
خوب حالا برای خلاصه نویسی هاور کنید روش و CTL + . رو بزنید و بعد بزنید روی collection initialization can be simplified کلیک کنید.
public static void InitializeGrid(PlayerInfoModel model){ List<string> letters = new List<string>{ 'A', 'B', 'C', 'D', 'E' } }