• مقدمه

در بخش ۶۰ام از سری آموزش زبان برنامه‌نویسی سی‌شارپ، شما با نحوه ارسال اطلاعات به Class را آموختید، اما اگر به خاطر داشته باشید، در مورد روش نامناسب ارسال اینگونه اطلاعات کمی صحبت کردیم. در این قسمت می‌خواهیم در رابطه با Propertyهای یک Class که بوسیله آن‌ها می‌توانیم اطلاعات را ارسال کنیم، صحبتی داشته باشیم.

  • اضافه کردن Property به کلاس‌ها

تا کنون که درحال نوشتن آموزش‌های زبان سی‌شارپ بودیم و شما گام‌به‌گام همراه با ما پیش رفتید، از مفهموم Property استفاده زیادی کردیم. مثلاً، یکی از Propertyهای پرکاربرد Textbox، با نام text بود که توسط آن، می‌توانستیم متن داخل Textbox را تعیین کنیم. برای مثال:

textBox1.Text = “My Text”;

پس ما یک Object با نام textbox1 داریم که یک Property به نام Text در آن وجود دارد.

به Classای که پیش‌تر در پروژه ساختیم نگاه کنید؛ فعلاً تنها کدی که در آن وجود دارد، یک متد از نوع Private می‌باشد که نام آن را getMessage قرار داده بودیم. این متد بدلیل آنکه سطح دسترسی Private دارد، بیرون از کلاس قابل دیدن و استفاده کردن نیست. اما عدم امکان استفاده از آن در بیرون از کلاس، دلیل بر عدم کارآیی آن بطور کلی نیست، بلکه می‌توانیم از آن در داخل خود Class استفاده کنیم.

ما با استفاده از Propertyای که تعریف می‌کنیم، خواهیم توانست که این متد را بعداً صدا بزنیم. Property ما قرار است دو کار زیر را انجام دهد:

۱. ارسال اطلاعات به Class

۲. بازخوانی اطلاعات ارسال شده از Class

روش ساده برای اضافه کردن یک Property به Class، استفاده از Insert Snippet که بصورت منو است، می‌باشد. کافیست که بر روی فضای خالی از کدهایتان راست کلیک کرده و روی Insert Snippet کلیک کنید.

insertSnippet_p100

با انتخاب این گزینه، منوی زیر برای شما نمایش داده می‌شود. کاربران Visual Studio نسخه ۲۰۱۲ آن ممکن است که منوی دیگری را ابتدا مشاهده کنند.

insertSnippetProp_p100

گزینه prop را انتخاب کرده تا کدهای پیشفرض برای شما قرار گیرد. دقت کنید که اگر درحال استفاده از Visual Studio 2012 هستید، می‌بایست که گزینه propfull را انتخاب کنید.

insertSnippetProp2_p100

کدها شاید کمی گیج‌کننده بنظر بیاید، اما نترسید؛ تک‌تک موارد را قدم به قدم با هم پیش خواهیم رفت.

کد بصورت پیشفرض برای یک Property از نوع integer و سطح دسترسی public با نام MyProperty ایجاد شده است. یک متغیر با سطح دسترسی private نیز ایجاد شده که نام آن myVar می‌باشد. دقت کنید که به متغیرهای داخل یک کلاس، فیلد (Field) نیز می‌گویند.

قرار است که ما متن تبریک تولد را بصورت String برگردانیم، پس کدهایتان را به‌شکل زیر تغییر دهید:

insertSnippetProp3_p100

نام متغیری که بیرون از Property هست را به birthdayMessage تغییر دادیم. دقت کنید که دسترسی آن Private بوده و فقط در داخل Class می‌توان از آن استفاده کرد. در داخل Property نیز دقت کنید که مقدار myVar را نیز به نام جدید آن‌، یعنی birthdayMessage، تغییر داده‌ایم.

ساختار یک Class بصورت زیر است:

public string MyProperty

{

}

شما می‌توانید از هر نوعی که بخواهید و با هر نامی که تمایل دارید یک Property بسازید؛ تقریباً شبیه به یک متغیر است! حال دقت کنید که در داخل بدنه یک Property، قسمتی جهت دریافت مقدار متغیر می‌باشد.

get { return birthdayMessage; }

و بخش دیگری نیز جهت تنظیم مقدار متغیر وجود دارد:

set { birthdayMessage = value; }

کلمات کلیدی set و get برای این مقصود بکار می‌روند. Value همان مقداری است که می‌خواهید به Property ارسال کنید.

اگر مقدار داخل عبارت set را به مقدار زير تغيير دهيد، متدي كه قبلاً بصورت private بوده نيز مورد استفاده قرار خواهد گرفت.

birthdayMessage = getMessage( value );

در قسمت بعد، نحوه استفاده از اين propertyها را فراخواهيد گرفت.