نکات پنهان در دات نت – نکته ۳ – ناحیه کد

نکته شماره ۳ مربوط به مدیریت بهتر کدها در Visual Studio است. حتما مجبور به خواندن کدهای بسیاری شده اید که بسیار بی نظم و درهم ریخته نوشته شده اند و همین بی نظمی باعث صرف زمان بیشتر برای پیدا کردن و بررسی کدهای مورد نظر شده است. برای رفع این مشکل در Visual Studio می توانید از Region استفاده کنید.
با استفاده از #region شما می توانید ناحیه های مختلفی از کدها را تعریف کنید. فراموش نکنید که این یک تقسیم بندی تاثیری در نحوه اجرا و عملکرد کدهای شما ندارد. به مثال زیر توجه کنید:

#region RegionName
// this is your code
#endregion

 مثال:

#region properties
        public int PersonId { get; set; }
        public int FirstName { get; set; }
        public string LastName { get; set; }
#endregion

پس از استفاده از #region در Visual Studio در کنار آن یک علامت + نمایش داده میشود که با استفاده از آن می توانید ناحیه کد مورد نظر را بسته و یا باز کنید.
چند ناحیه پیشنهادی برای کدهای شما:

  • #region Properties
  • #region Private Methods
  • #region Public Methods
  • #region Constructors
  • #region Handlers

 

نکات پنهان در دات نت – نکته ۲ – انواع داده Nullable

Null یک مقدار کاربردی در برنامه نویسی است که همه برنامه نویس ها با آن آشنا هستند. همه میدانیم که وقتی یک متغیر تعریف می کنیم مقدار پیش فرض آن null است وقتی هم یک نمونه ای از یک کلاس تعریف می کنیم می توانیم آن را با مقدار null مقدار دهی کنیم. اما مشکل اصلی در مورد انواع داده عددی و struct هاست که نمی توانیم به آنها مقدار null بدهیم و یا مقدار آنها را با null مقایسه کنیم! این مسئله در کار با بانکهای اطلاعاتی که فیلدها قابلیت null بودن دارند بیشتر خودش را نشان میدهد.
Nullable ها انواع داده ای هستند که علاوه بر محدوده قابل قبول معمولی می توانند null را هم به عنوان مقدار بپذیرند و طبیعتا در شرطها با مقدار null مقایسه شوند. نحوه تعریف انواع داده Nullable بدین شکل است:

Nullable<T> variableName;

مثال ۱:

Nullable<int> iNull;

مثال ۲:

public struct MyStruct()
{
    public void foo()
    {
        //Do Anything
    }
}
static void Main(string[] args)
{
   Nullable<MyStruct> myStruct=null;
   if(myStruct==null)
    {
       //Do Anything
    }
}

راه ساده تر برای تعریف متغیرهایی Nullable استفاده از علامت ? است:

int? iContentType = null;

برای مطالعه بیشتر می توانید به این مقاله مراجعه کنید.

نکات پنهان در دات نت –نکته ۱ – متد ForEach

یک Extension Method است که عملیات تعیین شده action را برای هر آیتم موجود در List<T> انجام میدهد. حالت کلی به این شکل است:

List<T>.ForEach(Action<T> action);

قطعا شما در بسیاری از کدها از حلقه ها استفاده کردید بخصوص حلقه foreach که در پیمایش لیستها کاربرد زیادی دارد. به جای استفاده از حلقه foreach می توانید از متد ForEach استفاده کنید. به مثال زیر توجه کنید:

foreach(Foo foo in foos)
{
statement involving foo;
}

به جای کد فوق می توانید از این کد استفاده کنید:

 

foos.ForEach((Foo foo)=>{ statement involving foo; });

یا:

foos.ForEach(
    delegate(Foo foo)
{
    statement involving foo;
});

اما با توجه به تستهایی که انجام شده است سرعت اجرای کدهای IL تولید شده برای متد ForEach بالاتر از حلقه foreach است (البته بجز در آرایه ها). علاوه بر آن خوانایی ForEach بالاتر و نگهداری کدهای آن ساده تر است. برای مطالعه بیشتر می توانید به این منابع مراجعه کنید: