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

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

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

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

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

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

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


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

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

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

قسمت صد و صد و سیم


ادامه قسمت صد و بیست و نهم.

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

بعد از اينكه دو شيئ از نوع ComplexNumber را با يكديگر جمع كـرديم، نتيجـه نيـز از نـوع ComplexNumber خواهد بود، پس بايد خروجي (مقدار برگشتي متد ) را از نوع ComplexNumber مشخص كنيم .
سپس مي توانيم نحوه جمـع كردن دو شيئ از نوع مشخص شده را در بدنه ي متد مشخص كنيم .
در اين جا براي جمع دو مقدار فرستاده شـده، شـيئ جديـدي از نوع ComplexNumber تعريف كرده، قسمتهاي حقيقي دو عدد را با يكديگر و قسمتهاي موهومي آن را نيـز بـا هـم جمـع كرده حاصل را در شيئ ComplexNumber جديد قرار مي دهيم.
سپس اين شيئ را به عنوان نتيجه برمي گردانيم .

 

بــراي ســربار گــذاري عملگــر – نيــز از همــين روش اســتفاده مــي كنــيم .

ايــن عملگــر نيــز ماننــد + دو شــيئ از نــوع ComplexNumber را دريافت كرده و حاصل را نيز به صورت ComplexNumber برمي گرداند .

با اضافه كردن اين دو متد به كلاس ComplexNumber ،اين كلاس ديگر كامل شده اسـت و مـي تـوانيم از آن در برنامـه استفاده كنيم .
در صفحه ي اصلي برنامه چهار كادر متني براي دريافت قسمتهاي موهومي و حقيقي دو عدد مختلطي كه بايد بـا هـم جمع و تفريق شوند قرار داده ايم .
اما همانطور كه مي دانيد اين اعداد به صورت متن در اين كادر ها وارد مي شوند، پس ابتـدا آنهـا را به عدد تبديل كنيم .
در بخش مقدماتی دوره گفتم كه براي تبديل يك رشته ي حاوي عدد بـه يـك عـدد بايـد از متـد Parse در كـلاس مربوط به نوع داده اي آن عدد استفاده كنيم .
در اين قسمت هم، به اين علت كه مي خواهيم به كاربر اجازه دهيم بتواند اعداد اعشاري نيز وارد كند، نوع داده اي اعداد موجود در كادر ها را برابر با double در نظر گرفته و از تابع Parse مربـوط بـه آن اسـتفاده مي كنيم تا متن وارد شده درون كادر به عددي از نوع Double تبديل شود .

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

بعد از تعريف اين دو شيئ به قسمت جالب برنامه مي رسيم .
به نحوه اسـتفاده از عملگـر جمـع بـراي جمـع كـردن دو شـيئ از نـوع ComplexNumber توجه كنيد
هنگامي كه برنامه به اين دستور مي رسـد، متـد + operator را فراخـواني كـرده، متغيير سمت چپ علامت + را به عنوان پارامتر اول و متغيير سمت راست را به عنوان پارامتر دوم به متد مي فرستد .
مقـدار برگـشتي متد را نيز به عنوان حاصل عبارت در متغيير sum قرار م ي دهد .
سپس همين عمل را براي قسمت تفريـق نيـز انجـام مـي دهـد و حاصل عبارت مربوط به آن را در متغيير minus قرار مي دهد.
به اين ترتيب متغيير sum حاوي نتيجه ي متد operator + (يا همان حاصل جمع دو عدد مختلط) و متغيير minus حاوي نتيجه متد – operator (یا همـان حاصـل تفريـق دو عدد مختلط) خواهد بود .

بعد از محاسبه ي اين دو مقدار، بايد نتيجه را در خروجي چاپ كنيم .
امـا بـراي ايـن كـار نيـازي نيـست كـه از فيلـد هـاي كـلاس ComplexNumber استفاده كنـيم .
همـانطور كـه خـاطر داريـد در ابتـداي بر نامـه، متـد ToString را بـه گونـه اي override كرديم كه عدد مختلط مربوط به شيئ را به صورت مطلوب نمايش دهد .
بنابراين در اين قسمت كافي اسـت بـراي هر يك از اشياي sum و minus اين متد را فراخواني كرده و حاصل را در يك ليبل نمايش دهيم .

در اين مثال مي توانستيم همين كار را با استفاده از متدهاي عادي مانند يك متد Add نيز انجام دهـيم،

امـا اسـتفاده از ايـن روش سادگي برنامه نويسي و نيز خوانايي كد را افزايش مي دهد .

براي مثال تصور كنيد بخواهيد چهار شـيئ A ،B ،C و D را بـا يكـديگر جمع كنيد .
در اين صورت اگر بخواهيد از متدهاي عادي استفاده كنيد بايد فرضاً چهار مرتبـه متـد Add را فراخـواني كنيـد، امـا بـا استفاده از سربار گذاري عملگر جمع مي توانيد به راحتي از دستور D+C+B+A استفاده كنيد .


پایان بخش صد و سیم.


در قسمت بعدی با کلاس Abstract آشنا میشوید.

 


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

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

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

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

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

soroush کانال سروش

کانال آی گپ