معرفی
همه ما می دانیم که Object کلاس پایه همه کلاس های دات نت است و به طور پیش فرض به همه کلاس های Net به ارث می رسد. این کلاس داخلی یا سفارشی است. به همین دلیل است که وقتی تایپ می کنیم
". ما قادر خواهیم بود 4 متد را همانطور که در متدهای زیر نشان داده شده است ببینیم، حتی اگر کلاس تعریف شده ما خالی باشد.
در زیر عکس فوری از کلاس شی است،
همانطور که در اسنپ کد بالا می بینیم، در صورت نیاز می توانیم 3 روش را لغو کنیم. یعنی اگر نیاز ما ایجاب کند یا اگر فکر میکنید با نادیده گرفتن این روشها، میتوانیم بهترین استفاده را از آن ببریم.
این را با یک مثال خواهیم دید.
کلاس Employee را در این قسمت ایجاد می کنیم:
- ما می توانیم شناسه کارمند را با استفاده از روش GetHashCode دریافت کنیم
- ما قادر خواهیم بود نام کارمند را فقط با تبدیل شیء کارمند به عنوان رشته دریافت کنیم.
- ما می توانیم شناسه کارمند را با روش Equals مقایسه کنیم
برای نیاز ذکر شده در بالا کد نمونه زیر است:
- using System;
- namespace Sample.Basic.Object
- {
- public class Employee
- {
- public Employee(string name, int id, double salary)
- {
- Name = name;
- Id = id;
- Salary = salary;
- }
- private string Name { get; set; }
- private double Salary { get; set; }
- private int Id { get; set; }
- public override bool Equals(object obj) => obj.GetHashCode() == Id;
- public override int GetHashCode() => Id;
- public override String ToString() => Name;
- }
- }
در کد بالا می بینیم که روش GetHashCode، Equals و ToString را لغو می کنیم.
- در GetHashCode ما کدی را برای دریافت شناسه کارمند اضافه کردیم.
- در ToString ما کدی را برای دریافت نام کارمند اضافه کردیم.
- در Equals ما کد اضافه کردیم تا شیء کارمند را فقط با ID به عنوان مرجع مقایسه کنیم.