تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 36 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت علی (ع): هر چیزی زکات دارد ، و زکات علم نشر آن است!

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و بیست و هفتم


به نام پروردگار جهان

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و بیست و هفتم

سلام به همه کاربران وبسایت لندلرن

قسمت صد و بیست و هفتم


استفاده از متدهاي Static:

در بخش قبلي مشاهده كرديم چگونه مي توان يك فيلد public را به صورت اشتراكي معرفـي كـرد .

در ايـن قـسمت هـم بـه چگونگي ايجاد يك متد كه بين تمام اشيا مشترك باشد خواهيم پرداخت .

در بخش امتحـان كنيـد بعـد، متـدي از نـوع static ايجاد خواهيم كرد كه بتواند يك نمونه از كلاس User را ايجاد كند .

تنها محدوديتي كه اين متد ها نسبت به متدهاي همانند خود دارند در اين است كه اين متد ها فقط مي توانند به متد ها و خاصيت هاي static كلاس دسترسي داشته باشند.

نكته: مثال زير فقط يك مثال تصنعي براي معرفي متدهاي static است، زيرا اين كار مي تواند بدون استفاده از اين نوع متـد ها نيز به سادگي انجام شود .

امتحان كنيد: استفاده از متدهاي static

قسمت ويرايشگر كد را براي كلاس User باز كنيد و كد مشخص شده در زير را به آن اضافه كنيد.

قسمت ويرايشگر كد را براي Form1 باز كنيد و به متد مربوط به رويداد Load فرم برويد .

كد موجود در اين متـد را به صورتي كه در زير مشخص شده است تغيير دهيد .

دقت كنيد هنگامي كه نـام كـلاس User را وارد كنيـد، ويـژوال استوديو متد CreateUser را نيز به عنوان يكي از گزينه هاي قابل انتخاب نمايش مي دهد.

برنامه را اجرا كنيد. مشاهده خواهيد كرد كه در خروجي برنامه هيچ تغييري ايجاد نشده است


چگونه كار مي كند؟

نكته مهمي كه در اين مثال وجود دارد اين است كه با وارد كردن نام كلاس User ،نام متد CreateUser نيز بـه عنـوان يكي از گزينه هاي قابل انتخاب نمايش داده مي شود.
دليل اين مورد اين است كه اين متد به عنوان يك متـد static تعريـف شده است و بين تمام اشيايي كه از اين كلاس نمونه سازي مي شوند مشترك است .
پس براي دسترسي به آن مي توانيد از نام خـود كلاس استفاده كنيد .
براي تعريف يك متد static ،مي توانيد در هنگام تعريف كلاس از كلمـه كليـدي static اسـتفاده كنيد.

يكي از نكاتي كه هنگام نوشتن متدهاي static بايد در نظر داشته باشيد اين است كه اين متد ها فقط مي تواننـد بـه اعـضاي static كلاس دسترسي داشته باشند .
دليل اين امر هم ساده است، زيرا اين متد به شيئ خاصي وابسته نيست. بنـابراين اگـر در اين متد از اعضاي معمولي كلاس، كه بازاي هر شيئ يك نمونه از آنها وجود دارد استفاده شود، هنگام فراخواني اين متد نمـي تـوان تشخيص داد كه اعضاي مربوط به كدام شيئ از كلاس مد نظر است .

سربار گذاري عملگر ها :

در برنامه هايي كه تاكنون نوشته ايم از عملگر هاي استاندارد مانند + و يا – براي كار بر روي نوع هاي داده اي خاصي مانند اعـداد صحيح، اعداد اعشاري و يا رشته ها استفاده مي كرديم .
اين عملگر ها به صورت دروني براي كار بـا ايـن نـوع هـاي داده اي برنامـه ريزي شده اند .
بعضي از زيانهاي برنامه نويسي مانند #C به برنامه نويس اجازه مي دهند كه عملكرد اين عملگر هـا را بـه گونـه اي تغيير دهند تا با ساختارها و يا كلاسهاي نوشته شده توسط آنها نيز كار كنند .
براي مثال ممكن است بخواهيم ساختاري را ايجاد كنيم كه بتواند اعداد مختلط را در خود نگهداري كند .
همانطور كه مـي دانيـد هـر عدد مختلط از يك قسمت حقيقي و يك قسمت موهومي تشكيل شده است .
فرض كنيد در يك برنامه، كلاسي را براي نگهـداري از اعداد مختلط به صورت زير تعريف كرده ايد :

براي جمع دو شيئ از اين كلاس، بايد قسمتهاي حقيقي هر كدام را با هم و قسمتهاي موهومي را نيز با هم جمع كنيم .
اما عملگر + به صورت عادي نمي تواند اشيايي كه از اين كلاس نمونه سازي مي شوند را با يكديگر جمع كند .
در #C اين قابليت وجـود دارد تـا براي عملگر + تعريف كنيم كه چگونه بايد دو شيئ از اين نوع را با يكديگر جمع كند .
بعد از اين كار، اين عملگـر قـادر خواهـد بـود همانطور كه دو عدد عادي را با هم جمع مي كند، دو شيئ از كلاس ComplexNumber را نيز با هم جمع كند . به اين كـار سربار گذاري عملگر مي گويند .

نكته: بسياري از زبانهاي برنامه نويسي مانند Java و يا Visual Basic اجازه نمي دهند كه عملگر ها را سربار گذاري كنيد.
در اين زبانها معمولاً از يك متد با نامي مشابه عملگر (همانند متد Add) براي انجام دادن آن عمـل در كـلاس اسـتفاده مـي كنند .

قبل از اينكه بتوانيم با نحوه ي انجام اين كار در #C آشنا شويم، بايد عملگر ها را بهتر بشناسيم .
پس ابتدا نكـات ديگـري كـه لازم است در مورد هر عملگر بدانيد را بررسي كرده و سپس به سراغ نحوه ي سربار گذاري آنها مي رويم.

این موضوع در قسمت بعدی بررسی میشود.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ