آموزش ASP.NET Core MVC

استفاده از خاصیت های خودکار در کلاس ها

با سلام خدمت شما دوستان برنامه نویس ، با یکی دیگر از جلسات آموزش ASP.NET Core در خدمت شما دوستان هستم در جلسه گذشته با کاربرد عملگر شرطی Null آشنا شدیم . در این جلسه آموزش طراحی سایت با ASP.NET قصد دارم تا شما را با نحوه استفاده از خاصیت های خودکار در کلاس ها آشنا کنم .

استفاده از خاصیت های خودکار در کلاس ها

در #C می‌توان خاصیت ها را درون کلاس ها طوری تعریف کرد که نیازی به تعریف فیلد نداشته باشند. کامپایلر #C برای چنین خاصیت هایی (Automatic Implemented Properties) در ترجمه ی برنامه ، فیلدهایی درون حافظه ایجاد می‌کند . در جلسه گذشته ، هنگام ایجاد کلاس person ، از این روش در معرفی خاصیت های کلاس استفاده کردیم.
در کاربرد این ویژگی نیاز به استفاده از get و set نخواهد بود در این حالت ، تعریف خصوصیت به دو روش زیر باهم برابر هستند:

...
public string Name {get;set;}
...

...
public string Name{
    get {return name;}
    set {name=value;}
}
...

خاصیت های خودکار از نگارش  3.0 #C قابل استفاده بوده اند نگارش های اخیر #C ، امکان مقدار دهی آغازین این خصوصیت ها را نیز فراهم آورده است.
مقداردهی آغازین خصوصیت های خودکار در Product.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearnCSharp.Models
{
   public class Product
    {
        public string Name { get; set; }
        public string Category { get; set; } = "Watesports";
        public decimal? Price { get; set; }
        public bool InStock { get; } = true;
        public Product Related { get; set; }
        public static Product[] GetProducts()
        {
            Product Kayak = new Product
            {
                Name = "Kayak",
                Category = "Water Craft",
                Price = 275M
            };

            Product lifejacket = new Product
            {
                Name = "Lifejacket",
                Price = 48.95M,
            };

            Kayak.Related = lifejacket;

            return new Product[] { Kayak, lifejacket, null };
        }
    }
}

مقداردهی آغازین یک خاصیت خودکار ، موجب نمی شود که نتوانیم در آینده مقدار آن را تغییر دهیم نتیجه اصلی مقداری که در هنگام تعریف به خاصیت داده می شود آن است که مجبور به استفاده از سازنده ای برای تعیین مقدار پیش فرض خاصیت ها نباشیم. در کد بالا مقدار Watesports به خاصیت category نسبت داده شده است. با این حال در زمان ایجاد شی kayak ، این مقدار را به Water Craft تغییر داده ایم.

 

خاصیت های خودکار فقط خواندنی

حذف set از فرمان ایجاد خاصیت خودکاری که دارای مقداردهی آغازین است موجب ایجاد خاصیتی می شود که در آینده نمی توان مقدار آن را تغییر داد.
خاصیت InStock در هنگام ایجاد ، مقدار true را به خود گرفته ولی به دلیل این که سازنده ی  آن دارای set نیست نمی توان مقدارآن را تغییر داد با این حال توجه کنید که تغییر مقدار خاصیتی فقط خواندنی ، در سازنده کلاس ، امکان پذیر است.

مقداردهی خاصیتی فقط خواندنی در سازنده کلاس Product.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearnCSharp.Models
{
      public class Product
    {
        public Product(bool stock = true)
        {
            InStock = stock;
        }
        public string Name { get; set; }
        public string Category { get; set; } = "Watesports";
        public decimal? Price { get; set; }
        public bool InStock { get; } = true;
        public Product Related { get; set; }
        public static Product[] GetProducts()
        {
            Product Kayak = new Product
            {
                Name = "Kayak",
                Category = "Water Craft",
                Price = 275M
            };

            Product lifejacket = new Product
            {
                Name = "Lifejacket",
                Price = 48.95M,
            };

            Kayak.Related = lifejacket;

            return new Product[] { Kayak, lifejacket, null };
        }
    }
}

سازنده ، مقداری را برای نسبت دادن به خاصیت به عنوان پارامتر ورودی می‌پذیرد. اگر مقداری وارد نشود، مقدار پیش فرض در نظر گرفته خواهد شد مقدار خاصیت ، پس از اجرای سازنده ، قابل تغییر نخواهد بود.

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

برچسب ها

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

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

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

‫2 نظرها

    1. با سلام … در حال حاضر تا پایان سال 97 متاسفانه فرصتی برای تدریس خصوصی ندارم، پیشنهاد میکنم از دوره جامع ویدیویی که برگزار شده در سایت میزفا استفاده کنید … موفق باشید.

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

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

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

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

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