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

آموزش ASP.NET Core
آموزش ASP.NET Core

با سلام خدمت تمامی همراهان دوره آموزش طراحی سایت با 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 رسیدیم در صورتی که سوالی پیرامون مقالات آموزشی داشتید حتما در قسمت نظرات مطرح کنید.

فیلم آموزشی asp.net core 2

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

فیلم آموزشی asp.net core 2

بدون نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

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

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=