RSS



آموزش سي شارپ - قسمت پنجم

گفتيم كه ValueType ها داراي رفتار خاصي هستند. اما چه رفتاري؟
وقتی یک متغییر از یکی از نوع های Value Type مثل int ایجاد می کنیم مقدار آن داخل حافظه Stack قرار می گیرد و وقتی از آن متغییر یک کپی میگیریم مقدار متغییر قبلی داخل متغییر جدید کپی می شود.
یعنی اگر مقدار متغییر دوم رو عوض کنیم تاثیری روی مقدار متغییر اول نخواهد گذاشت. این رفتار در مورد تمامی ValueType ها صدق می نماید:
كپي گيري از يك متغيير ValueType در دات نت
وقتي مقدار متغيير دوم رو تغيير دهيم مقدار متغيير اول دست نخورده باقي ماند.
تغيير متغيير كپي گرفته شده در سي شارپ دات نت

Enumerations
فرض بفرمائيد كه شما مي خواهيد يك كلاس تعريف كنيد به نام انسان. وقتي خواص انسان رو تحت بررسي دارين به جنسيت مي رسيد. حالا مي خواهيم روي كلاس انسان يك متغيير براي نشان دادن جنسيت تعريف كنيم. به نظر شما جنسيت رو از چه نوعي بايد در نظر گرفت؟ bool يا int؟
اگر bool در نظر گرفتيم false به معني مرد خواهد بود يا true؟
اگر int در نظر گرفتيم چه عددي بيانگر مرد و چه عددي بيانگر زن مي باشد؟ و اگر كاربر شما عددي به غير اعداد انتخابي شما وارد كرد, چه طور؟

گاهي اوقات در توسعه نرم افزار ها ما به جنس (Type)هايي نياز داريم كه بتوانيم مقدار شان را محدود كنيم. مثلا همين جنسيت. با استفاده از Enumeration ها مي توانيم مقدار متغيير جنسيت رو به مرد يا زن محدود كنيم.

براي ايجاد يك Enumeration بايد در يك فايل با پسوند cs كه بيانگر سي شارپ است از Syntax زير استفاده كنيم:

public enum eSex
{
  Male,
  Female
}

دقت كنين كه وقتي متغييري از اين جنس بسازيم به هيجوجه مقداري به غير از مرد يا زن نمي توانيم اختصاص دهيم:

eSex Sex; // ايجاد متغيير از جنس يك enum
Sex = eSex.Male; // مقدار دهي متغيير

حالا مي بينيم كه چطور با استفاده از enum مي توانيم مقدار دهي يك متغيير را به مقادير محدودي نسبت دهيم. در دات هم مثال هاي متعددي از استفاده از enum ها وجود دارد. مثلا يك enum به نام Keys تمامي كليد هاي صفحه كليد رو در خود جاي داده است. يا enumي با نام ConnectionState وضعيت هاي امكان پذير يك Connection رو نشان مي دهد.

ادامه دارد...

تاريخ : سه_شنبه 3 دی 1387   ساعت : 12:04:52 AM    نويسنده : مهرداد قاسمي | نظرات




منوي اصلي

 


آموزش تحت پروژه


شرکت ساینا مبتکر شیوه نوین آموزش تحت پروژه برگزار می کند

C#,ASP.Net,ADO.Net,SQL Server
AVR,ARM,Protel,PC Interface
MCSE with Cisco Device
66494685-66405702 : تلفن

لینک روزانه


 آموزش دکمه های جهانی برای وب سایت شما در فتوشاپ  (2)
 ارسال فایل بدون اینترنت  (3)
 25 ترفند حرفه ای فتوشاپ (3)
 چت رایگان با ایرانسل (2)
 آموزش تعمیرات لپ تاپ Laptop Repair (2)
 خطرناک ترین کارهایی که می توانید آنلاین انجام دهید (3)
 آموزش روش جديد براي انتقال شارژ همراه اول (خط به خط)  (3)
 هک شدن صدها سایت اسرائیلی و انگلیسی توسط گروه آشیانه  (4)
 تماس تلفنی با تلفن‌های سراسر دنیا از طریق جیمیل !‏ (7)
 چگونه پوشه هایی که قابل پاک شدن نیست را پاک کنیم؟ (17)
  ادامه آرشيو لينك روزانه «

پربازدیدترین مطالب


آرشیو موضوعی


آرشیو ماهانه


لینک دوستان

     برنامه نویس
     CodeProject
     CoderSource
     w3schools
     مرجع برنامه نویسی
     میزبانی وب و ثبت دامنه آنلاین


جستجو در سایت