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

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

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

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

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

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

3 نظر

3 پاسخ

  1. با تشکر از وقتی که برای آموزش میگذارید. مطالب شما رو پیگیری میکنم و بسیار ارزنده است. فقط در قسمت مقالات به نظرم نحوه نمایش کدها مرتب نیست و این خواندن آنها را سخت و یادگیری آنها را هم کند میکند

  2. سلام
    با تشکر از مطالب خوبتون
    شما آموزش خصوصی asp core 2 دارید ؟

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

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

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

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

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

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

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