مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش property در کلاس سی شارپ - بخش اول


قسمت یازدهم

 خصیصه ((1)property)

در این مقاله قصد داریم تا از میان اعضای نوع داده کلاس در سی شارپ ، با خصیصه (property) آشنا شویم.

در مقالات  قبلی اعضای کلاس (class members) را تعریف کردیم و گفته شد ، هر عضوی که مستقیما در بدنه کلاس یا در بدنه اعضای کلاس ، تعریف شود  به عنوان عضو کلاس (class members)شناخته می شود. همچنین گفته شد که این اعضا به گروه فیلد ها (fields) ، ثابت ها(constants)  ، خصوصیات (properties) ، متد ها (methods) ، رخدادها (events) ، عملگر ها(operations) ، ایندکسر ها (indexers) ، سازنده ها (constructors) ، مخرب ها (finalizers) ، نوع داده های تو در تو (nested type) تقسیم می شوند. و در مورد تعریف و استفاده از فیلد ها (fields) و ثابت ها  (constants) در نوع داده کلاس صحبت کردیم در این مقاله قصد داریم تا با خصوصیات (properties) بحث را ادامه دهیم.

خصیصه (property)

خصیصه (property) در واقع مکانیزمی هستند برای خواندن و نوشتن در فیلدها ای (fileds) با سطح دسترسی خصوصی (private) که در بدنه کلاس تعریف شده اند. آنها بر خلاف متغیر ها (variables) نام مکانی از حافظه نیستند ، بلکه با استفاده از دو متد get و set ( از این متد ها با نام accessors نام برده می شود.) که در بدنه خصیصه (property) تعریف می شود، برای تغییر مقادیر متغیر ها با سطح دسترسی خصوصی استفاده می شوند.

الگوی تعریف خصیصه (property)

 

access modifier  type  property name

{

 get

 {
 //  get body
 }

 set

 {
 // set body   
 } 

}

 

access modifier : سطح دسترسی را در تعریف خصیصه (property) ، مشخص می کند.

type : نوع داده را در تعریف خصیصه (property) ، مشخص می کند.

 property name : نام  خصیصه (property) ، که توسط برنامه نویس مشخص می شود .

get : متدی (accessor) است که به منظور خواندن مقدار و برگرداندن آن در قالب مقدار خصیصه (property) استفاده می شود. این کار مانند تمامی متدها با مقدار برگشتی ، توسط کلمه کلیدی return انجام می شود.

set : متدی (accessor) است که به منظور نوشتن یا انتساب دادن یک مقدار ، از آن استفاده می شود. و  در آن کلمه کلیدی به نام value وجود دارد که مقدار  انتساب داده شده به خصیصه (property) در آن قرار می گیرد.

نکته :

از متد های get و set با نام accessor نام برده می شود چون برای دسترسی به مقدار متغیر از ان ها استفاده می شود.

 

مثال : تعریف یک خصیصه (property) در بدنه کلاس

 

 public class rectangle

    {
      // private fied

        private double width;

        // private fied

        private double height;


        // public prpoerty relatecd to  private field (width) , which control input data validation

        double Width
        { 
            get

            {

                return width;

            }

            set

            {
                if (value > 0)

                    width = value;

                else
                    throw new ArgumentOutOfRangeException();
            }
        }

    // public prpoerty relatecd to  private field (height) , which control input data validation

        double Height

        {
            get

            {
                return height;
            }

            set
            {
                if (value > 0)

                    height = value;

                else

                    throw new ArgumentOutOfRangeException();
            }
        }

    }

 

در کلاس بالا با نام rectangle ، دوتا خصیصه با نام های width و Height تعریف شده است . که در هر دو آنها از متد های get و set به ترتیب برای خواندن و نوشتن در متغیر های خصوصی (private variables) با نام های width و height و همچنین کنترل مقدار ورودی در آن ها استفاده شده است.

نکته :

در تعریف خصیصه (property) می تواند یکی از دو متد  get و set و یا هر دو ان ها استفاده شود و همچنین برای هر کدام از متد ها (accessors) می توان سطح دسترسی تعریف کرد.

خصیصه  فقط خواندنی  (read- only property)

در تعریف این خصیصه ها ققط از متد get استفاده می شود. در نتیجه فقط مقدار خصیصه (property) را می توان خواند اما هیچ تغییری در آن نمی توان ایجاد کرد .

خصیصه  فقط نوشتنی (write-only property)

در  تعریف خصیصه (property) فقط نوشتنی،  فقط از متد set استفاده می شود. در نتیجه فقط مقدار خصیصه (property) را می توان تغییر داد اما نمی توان مقدار ان را خواند . به عنوان مثال برای انتساب به یک متغیر دیگر نمی توان از یک مقدار خصیصه (property) فقط نوشتنی استفاده کرد.

کلمه کلیدی value:

از کلمه کلیدی value برای انتساب  مقدار به متغیر خصوصی ، در متد set استفاده می شود. کلمه کلیدی value در واقع مثل پارامتر ورودی در  متد set عمل می کند و مقدار انتساب داده شده به خصیصه (property) در برنامه را ، نگهداری می کند.

مثال :

public class person

    {
      public string Name

        {
            get

            {
                return name;

            }

            set

            {
                name = value;

            }
     }

class Program

    {
        static void Main(string[] args)

        {

            person Operson = new person ();
            Operson.Name = "ali";

        }

    }

 

 در این مثال در کلاس person  یک خصیصه (property) ، با نام Name تعریف شده است. مقدار انتساب داده شده به این خصیصه (property) ( که  مقدار رشته ای “ali” است ) ، با استفاده از  کلمه کلیدی value  در متد set به متغیر  name  انتساب داده می شود.

استفاده از  خصیصه (property)

 فراخوانی خصیصه ها مانند دیگر اعضای کلاس از طریق نام شی صورت می گیرد و اگر به صورت استاتیک (static) تعریف شده باشد از طریق نام کلاس. به عنوان نمونه در مثال زیر مقدار  رشته ای “ahamd” در خصیصه (property) با نام Name از کلاس قرار می گیرد و سپس مقدار خصیصه با نام Name چاپ می شود. در زمان انتساب یک مقدار در خصیصه (property) ، متد set در بدنه خصیصه (property) ، اجرا می شود و در زمان خواندن مقدار از خصیصه (property) ، متد get در بدنه خصیصه (property) فراخوانی می شود .

class Program

    {
        static void Main(string[] args)

        {
            person Operson = new person ();

            Operson.Name = "ali";

            Console.WriteLine( "name=" + Operson.Name);

        }
    }

     

گرداوری :سمانه وزیریان

فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

آموزش ارسال پیامک، آموزش ارسال پیامک تکی و گروهی ، ارسال پیامک به صورت اختصاصی برای هر مشترک، دریافت پیامک، مشاهده وضعیت…

توضیحات کلی مجموعه:   آیا می دونید قیمت نرم افزارهای مدیریت پیامک در حدود 150 هزار تومان است؟ اما توسط این دوره شما میتونید با مبلغ بسیار کمتر یک نرم افزار مدیریت پیامک رو به صورت کاملا حر…
فصلِ: 9 , تعداد قسمت ها: 59 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل پایانی این دوره می باشد در مورد نحوه ساختن فایل نصبی سریع یا همان quick installer که روش پیشنهاد شده م…

توضیحات کلی مجموعه: پس از بازخوردهای بسیار خوبی که از دوره های آموزش برنامه نویسی سیستم اتوماسیون اداری و آموزش برنامه نویسی سیستم فروش و انبارداری مشاهده کردیم، تصمیم گرفتیم با توجه به درخ…
فصلِ: 13 , تعداد قسمت ها: 120 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل آخر از مجموعه بزرگ آموزش سیستم اتوماسیون اداری می باشد در ابتدا در مورد اسناد و نامه های خارج از سازما…

دوره صفر تا صد  آموزش برنامه نویسی و پیاده سازی سیستم اتوماسیون اداری تحت شبکه. (توصیه می شود دومی مجموعه را حتما ببینید) امروزه اطلاعات یکی از مهمترین و با ارزشترین منابع هر اداره و یا ساز…
فصلِ: 4 , تعداد قسمت ها: 14 , سطح: مقدماتی

این فصل در یک نگاه:

توضیح تنظیمات گرافیک و صدا در یونیتی پیاده سازی منو ها …

به نام خدا   بازی‌سازی یک حرفه بسیار جذاب است و تبدیل شدن به یک بازی‌ساز حرفه‌ای آرزوی همه ماست. اینکه بتوانیم دنیای خاصی خلق کنیم و در این دنیا قوانین خود را پیاده کنیم، همیشه ما را به وج…
فصلِ: 11 , تعداد قسمت ها: 92 , سطح: صفر تا صد

این فصل در یک نگاه:

اجرای سیستم روی سیستم، قرار دادن سیستم روی سرور، تعریف Connetion String، آشنایی با فایل App.config، ساخت رشته اتصال به ص…

مهمترین تکنولوژیهای استفاده شده در این دوره پروژه محور (سیستم فروش کالا و انبارداری) طراحی گرافیکی به روش WPF (Windows Presentaion Foundation) آموزش کامل برنامه نویسی xaml (برای طراحی های …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید