آموزش ASP.NET Core MVC

مقداردهی آغازین کلکسیون ها و اشیاء

با سلام خدمت تمامی همراهان دوره آموزش طراحی سایت با ASP.NET Core ، با عرض پوزش بابت تاخیر به وجود آمده در انتشار مقالات دوره اموزش ASP.NET Core ، با ادامه دوره آموزش ASP.NET  در خدمت شما هستم. در جلسه گذشته به آموزش ترکیب رشته ها در #C پرداختیم در این جلسه آموزشی با نحوه مقداردهی آغازین کلکسیون ها و اشیاء آشنا خواهید شد.

مقداردهی آغازین Collections و Objects

لازم به ذکر است که در این جلسه از مدل Product که در جلسات گذشته ایجاد کردم استفاده می کنم پس در صورتی که جلسات گذشته رو مطالعه نکرده اید پیشنهاد می کنم جهت فهم و یادگیری بهتر این جلسه ی آموزشی ، جلسات گذشته را حتما مرور کنید.

هنگام ایجاد شیئی در متد استاتیک GetProducts در کلاس Product ، از مقداردهی آغازین شی استفاده شده است . با این روش ایجاد شی ء و‌مقداردهی خاصیت های آن در یک گام انجام می‌شوند:

...
Product kayak = new Product()
{
      Name = "Kayak",
      Category = "Water Craft",
      Price = 275M,
};
...

این ویژگی دیگری از #C است که برنامه نویسی را آسان تر کرده است. بدون این ویژگی می‌بایست مانند کد زیر ، سازنده ی کلاس را فراخوانی می کردیم :

...
 Product kayak = new Product();
   kayak.Name = "Kayak";
   kayak.Category = "Water Craft";
   kayak.Price = 275M;
...

از همین روش می‌توان در مورد کلکسیون ها (Collections) نیز بهره بود . بدون کاربرد این روش ، برای ایجاد آرایه ای رشته ای ، تعریف آرایه همراه با مشخص کردن تعداد عناصر آن و مقداردهی آن عناصر ، باید در دوگام جداگانه انجام شوند. همانند کد زیر :

using LearnCSharp.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearnCSharp.Controllers
{
    public class HomeController : Controller
    {
        public ViewResult Index()
        {
            string[] names = new string[3];
            names[0]= "Bob";
            names[1]= "Joe";
            names[2]= "Alice";
            return View("Index",names);
        }
    }
}

استفاده از روش مقداردهی برای کلکسیون ها این امکان را فراهم می کند که تعیین محتوای آرایه یا هر کلکسیون دیگری (مانند List) به عنوان بخشی از سازنده ، انجام شود. به این ترتیب در مورد آرایه ، تعداد عناصر هم به صورت ضمنی مشخص می‌شود. همانند کد زیر :

using LearnCSharp.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearnCSharp.Controllers
{
    public class HomeController : Controller
    {
        public ViewResult Index()
        {
             return View("Index",new string[] {"Bob","Joe","Alice"});
        }
    }
}

عناصر آرایه بین نمادهای { و } مشخص شده اند که هم تعریف کلکسیون را روشن تر کرده است و هم این امکان را فراهم کرده است که بتوان تعریف کلکسیون را در فراخوانی یک متد (مانند View) وارد کرد. نتیجه دو کد بالا یکی است . این موضوع را می توانید با اجرای برنامه آزمایش کنید. نتیجه ای که مشاهده خواهید کرد به صورت زیر است:

Bob
Joe
Alice

از نگارش 6.0 #C به بعد همین روش را می‌توانید در مورد کلکسیون هایی که از اندکسر (Indexer) استفاده می‌کنند هم به کار برید مثال خوبی در این مورد ، دیکشنری است . هر عنصر کلکسیون دیکشنری از دو بخش کلید و مقدار(key , value) تشکیل شده است کد زیر اکشن متد Index را این بار در حالتی نشان می‌دهد که یک دیکشنری با روش نگارش C# 5.0 در آن تعریف و مقداردهی شده است .

using LearnCSharp.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearnCSharp.Controllers
{
    public class HomeController : Controller
    {
        public ViewResult Index()
        {
             Dictionary<string, Product> products = new Dictionary<string, Product>
            {
                {"Kayak",new Product {Name="Kayak",Price=275M} },
                {"Lifejacket",new Product {Name="Lifejacket",Price=48.95M} },
            };

            return View("Index",products.Keys);
        }
    }
}

نوشتار مقداردهی این کلکسیون به مقدار زیادی به نمادهای { و } بستگی دارد. 6.0 #C روش بهتری برای این کار پیشنهاد می‌کند که با چگونگی ذخیره و بازیابی داده ها از کلکسیون ، پس از ایجاد آن هماهنگی بیشتری دارد. به نمونه زیر دقت کنید :

using LearnCSharp.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearnCSharp.Controllers
{
    public class HomeController : Controller
    {
        public ViewResult Index()
        {
            Dictionary<string, Product> products = new Dictionary<string, Product>
            {
                ["Kayak"]=new Product {Name="Kayak",Price=275M},
                ["Lifejacket"]=new Product {Name="Lifejacket",Price=48.95M},
            };

            return View("Index",products.Keys);
        }
    }
}

نتیجه پایانی دو کد بالا یکی است. ایجاد یک دیکشنری که کلیدهایش Kayak و Lifejacket و مقادیرش عبارتند از اشیائی از product . ولی برای ایجاد عناصر از همان روش اندیس دهی استفاده شده است که در دیگر عملیات مربوط به کلکسیون ها هم از آن استفاده می شود اجرای برنامه ، نتیجه زیر را در مرورگر نشان می‌دهد.

Kayak
Lifejacket

بسیار خب به پایان این جلسه آموزش ASP.NET Core رسیدیم در صورتی که سوالی پیرامون مقالات آموزشی داشتید حتما در قسمت نظرات مطرح کنید.

برچسب ها

آرزو ابراهیمی

بیش از 4 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و ... بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

نوشته های مشابه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
سایت خود را در گوگل مدیریت کنید + ۱۵ ساعت فیلم آموزشیجزئیات بیشتر اینجا کلیک کنید
بستن
با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
ترک میزفا خوب نیست!
دوره سئو، رایگان شد.
یک چیز متفاوت تجربه کنید
کاراکتر اشاره گر
دوره سئو، رایگان شد.
یک چیز متفاوت تجربه کنید
کاراکتر اشاره گر