سی شارپ

|

اموزش سی شارپ

مبحث دیگه ای که ما در این مقاله اموزش میدهیم بحثیست که در عملیات عمل گرهامون داریم.

اینه که معیار برابری رو بیاییم چک کنیم و ببینیم که معیار برابری 2تا آیتم چی میتونه باشه.

معیار برابری در زبان سی شارپ به صورت پیش فرض gethashcod هست.اگه خاطرتون باشه شما یک object که ایجاد میکردید حالا هر object که بود یعنی از هر کلاسی که خودتون ایجاد کرده بودید یک object که ایجاد می کردید اگه دات رو میزدید علاوه بر اون فیلد ها و متد ها که خودتون ایجاد کرده بودید دسترسی داشتید به متدی به نام gethashcod و gethashcode در اصل ما اول گفتیم که چون همه ی کلاس ها در همون اول به صورت پیش فرض از کلاس object که پدر همه ی کلاس ها هست این gethashcode برای گلاس object هستش که دیگه شما هم از اون استفاده میکنید دسترسی دارید به این gethashcode .معیار برابری دقیقا gethashcode هست که برای این که دسترسی داشته باشید بخواهید gethashcode رو شما confige بکنید باید حتما عملیات override رو انجام بدید.

حالا این که عملیات override و gethashcode به چه صورت عمل میکنه ما در دوره ی مقدماتی خیلی راجع به این صحبت نمیکنیم و ذهنتون خیلی درگیر این configure ها نشه و تو دوره های بعدی که دوره ی متوسطمون و دوره پیشرفتمون راجع به این بحث بیشتر توضیح میدیم که کامل مطلب براتون جا بیفته.

خب فقط همین که بدونید حالا اگه خواستین configure شما داشته باشید راجع به gethashcode که برای پدر هست باید public override رو بنویسید و حالا داخل این میتونید یک پیاده سازی رو خودتون داشته باشید.علاوه بر این gethashcode که برای معیار برابری استفاده میکنیم یک متد دیگه داریم به نام equals که اون هم برای ما تقریبا شبیه همین gethashcode عمل میکنه و معیار برابری رو برامون انجام میده ولی فرقش با gethashcode اینه که equals یک ورودی رو میگیره و داخل خودش اون ورودی رو حالا با اون مقداری که شما دادید چک میکنه.این هم به صورت پیش فرض چون از قبل نوشته شده وقتی شما بخوایید یک پیاده سازی داشته باشین باید حتما override رو انجام بدین.

اموزش سی شارپخب ما اومدیم حالا اینجا خواستیم که برای operator= کد بنویسیم.اومدیم یک متد static تعریف کردیم دیگه متد ما از جنس complex نیست اینجا bool تعریف کردیم.مسلما این متد باید در نهایت یک bool رو return بکنه.نام operator رو قرار دادیم برای = 2 تا object از کلاس complex به عنوان ورودی بهش دادیم و چک کردیم حالا اگه xهای این 2 تا باهم برابر بود و yهای این 2 تا هم با هم برابر بود مقدار true ارسال بشه در غیر این صورت مقدار false به برنامه ارسال بشه.

حتما توجه داشته باشین وقتی برای operator= شما دارید کد مینویسید حتما برای operator نامسوی هم باید شما کدتونو بنویسید که ما اومدیم اینجا دوباره مثل همین متد بالا برای نامساوی هم نوشتیم و فقط true و false این 2 تا رو باهم دیگه جاشو عوض کردیم چرا که اگه غیر مساوی بخواد باشه وقتی که هم x و y مساوی باشه false رو باهم دیگه داشته باشیم و مقدار رو برگردونه.

اموزش c sharp

دریافت آخرین مطالب وبلاگ در کانال داتینه

علی نعیمی

علی نعیمی هستم،دارای لیسانس سخت افزار.
از سال 90 بصورت تخصصی به فراگیری زبان سی شارپ پرداختم. در حال حاضر مسلط به سی شارپ، جاوا، پایگاه داده و زبان های تحت وب هستم.

نظرات
نظر بدهید