soheil moonesi
soheil moonesi
خواندن ۲ دقیقه·۱۰ ماه پیش

پیاده سازی پروژه ی battleship با سی شارپ

حالا میرسیم به قسمتی که میخوایم اون چیزی های که برنامه ریزی کردیم رو پیاده سازی کنیم

اولین چیز اینه که بتونیم یه ساختار مناسب برای فولدر بندی پیدا کنیم، چرا ؟ خوب طبیعتا اول پروژه شاید اونقدر نیازش حس نشه ولی وقتی که پروژه میخواد بزرگتر بشه این ساختار بندی خیلی کمک کننده است.

میتونیم بگیم که به طور مثال 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' } }








پیاده سازیپروژهlibrary
C# enthusiast
شاید از این پست‌ها خوشتان بیاید