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

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

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

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

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

حضرت علی (ع) : دانش اندک همراه با عمل بهتر از علم بسیار بدون عمل است.

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


بسم الله الرحمن الرحیم

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

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

با قسمت ۲۰ آموزش در خدمت شما هستیم.

در بيرون از اين متد، متد ديگري را به صورت زير تعريف مي كنيد :

اين متد جديد، SayHello  ناميده ميشود. هر چيزي كه در بين دو آكولاد متد قرار بگيرد، جزئي از كد اين متد محسوب ميـشود و هنگامي كه متد فراخواني شود، اجرا خواهد شد. در اين حالت، كد نوشته شده در اين متد يك كادر پيغام را نمايش مي دهد. همانطور كه ميدانيد با كليك كردن بر روي دكمه فرمان، ويژوال استودیو متد button1_Click را اجرا ميكنـد و ايـن متد نيز SayHello  را احضار ميكند . نتيجه اين كه با كليك بر روي دكمه فرمان، كد داخل متد SayHello اجرا ميـشود و كادر پيغامي نمايش داده ميشود .

تا اينجا مقداري با تعريف تابع و نيز استفاده از آن آشنا شديد، اما سوالي كه ممكن است به وجود آيد اين است كه چرا نياز داريد متدي بنويسيد كه كادر پيغامي را نمايش دهد؟ در بخش امتحان كنيد بعد دليل اين كار را بيشتر متوجه خواهيد شد .

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

  1. اگر پروژه قبلي در حال اجرا است، آن را ببنديد.
  2. روي دكمه فرمان دوم دو بار كليك كنيد و كد زير را در متد ايجاد شده وارد كنيد:
  • به قسمت طراحي برگرديد و روي دكمه فرمان سوم دو بار كليك كنيد. در متد ايجاد شده كد زير را وارد كنيد :
  • حالا برنامه را اجرا كنيد و روي دكمه هاي فرمان كليك كنيد . مشاهده مي كنيد كه همه دكمه ها كادر پيغـام يكـساني را نمايش مي دهند .
  • اجراي برنامه را متوقف كنيد و متد SayHello را در بخش كد برنامه پيدا كنيد . متني كه در كادر پيغام نمـايش داده ميشود را به صورت زير تغيير دهيد:
  • برنامه را مجددا اجرا كنيد و روي دكمه هاي فرمان كليك كنيد . توجه كنيد كه متن مورد نمايش در كادر پيغام تغيير كـرده است.

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

 

۱ هر كدام از متدهاي مخصوص به رويداد كليك دكمه هاي فرمان  متد SayHello را فراخواني مي كنند :

همانطور كه از اسم اين متدها نيز مشخص است، هر كدام از آنها براي كنترل رويداد يكي از دكمه فرمانهاي روي فرم هستند .

توجه كنيد هنگامي كه شما نحوه كارك رد متد SayHello را كه هر سه متد از آن استفاده مي كنند تغيير دهيد، تغييرات بـه هـر سه دكمه فرمان اعمال ميشود.

اين مورد در برنامه نويسي موضوع بسيار مهمي است. اگر شما متدهاي كد خود را به نحـوي منطقـي تنظيم كنيد، ميتوانيد با تغيير يك متد در قسمتي از برنامه، بر روي تمام قسمتهاي برنامه تاثير بگذاريد . همچنين اين مـورد شـما را از وارد كردن كدهاي يكسان و مشابه به صورت تكراري نيز نجات ميدهد .

ايجاد يك متد :

 

در امتحان كنيد بعد، متدي خواهيد ساخت كه يك مقدار را برگرداند . تابعي كه در اين بخش ايجاد مي كنيد ميتواند مساحت يك دايره را بر اساس شعاع آن محاسبه كند. الگوريتمي كه براي اين كار استفاده ميكنيد به صورت زير است :

  1. شعاع را به توان دو برسان
  2. نتيجه را در عدد پي ضرب كن

 

امتحان كنيد: ايجاد يك متد

  1. براي نوشتن اين برنامه ميتوانيد از برنامه Buttons Three كه در مرحله قبل ساختيد استفاده كنيد .
  2. كد زير را براي تعريف يك تابع جديد در قسمت كـد برنامـه اضـافه كنيـد (ايـن متـد مقـداري را بـه برنامـه ي فراخـوان برميگرداند، پس يك تابع به شمار مي رود(.
  • سپس كد نوشته شد در متد button1_Click را حذف كنيد و كد زير را به جاي آن وارد كنيد :
  • برنامه را اجرا كنيد و روي دكمه فرمان Button1 كليك كنيد. نتيجه اي را مشابه عدد پی  مشاهده خواهيد كرد

قبل از هر چيز، يك متد مجزا به نام CalculateAreaFromRadius مانند زير ايجاد مي كنيد.

 

هر كدي كه بين دو آكولاد قرار بگيرد به عنوان بدنه تابع به شمار مي رود و با فراخواني تابع اجرا ميشود.

نكته:

يكي از مشكلات اين روش اين است كه اگر اندازه متغييـر بـزرگ باشـد، كپـي كـردن آن در برنامـه اصـلي در حافظـه ي مخصوص به متد زمان زيادي را مي گيرد و همچنين موجب مي شود حافظه ي زيادي اشغال شود . براي رفع اين مشكل مـي

تـوان متغيير هاي بزرگ را به روش ديگري به نام ارجاع به متدها فرستاد. براي اينكه يك پارامتر با استفاده از ارجاع به متد فرستاده شود

بايد قبل از تعريف پارامتر از كلمه كليدي

Ref

استفاده كنيد. هنگامي كه يك پارامتر با استفاده از ارجاع به يـك متـد ارسـال شـود، ديگر مقدار پارامتر در حافظه ي متد كپي نمي شود بلكه آدرس متغيير اصلي در حافظه، به متـد فرسـتاده خواهـد شـد . بنـابراين هـر تغييري كه متد در مقدار پارامتر ايجاد كند، بلافاصله در متغيير اصلي نيز تاثير خواهد گذاشت و مقدار آن نيز تغيير خواهد كرد.

 

بسیار عالی با قسمت ۲۱ همراه ما باشید.

 


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

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

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

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

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

soroush کانال سروش

کانال آی گپ