1. System. Object sinfi va uning usullari Umumlashtirish


Ob'ekt turini va GetType usulini olish



tải về 70.5 Kb.
trang3/12
Chuyển đổi dữ liệu27.03.2024
Kích70.5 Kb.
#56976
1   2   3   4   5   6   7   8   9   ...   12
22-09

Ob'ekt turini va GetType usulini olish
GetType usuli ushbu ob'ekt turini olish imkonini beradi:
Person person = new Person { Name = "Tom" };
Console.WriteLine(person.GetType()); // Person
Bu usul Type ob'ektini, ya'ni ob'ekt turini qaytaradi.

typeof kalit so'zi bilan biz sinf turini olamiz va uni ob'ekt turi bilan taqqoslaymiz. Va agar bu ob'ekt Client turini ifodalasa, biz ma'lum harakatlarni bajaramiz.
object person = new Person { Name = "Tom" };
if (person.GetType() == typeof(Person))
Console.WriteLine("Bu haqiqatan ham Person sinfidir ");
Bundan tashqari, Object sinfi barcha sinflar uchun asosiy tip bo'lganligi sababli, biz istalgan turdagi ob'ektni object tipidagi o'zgaruvchiga belgilashimiz mumkin. Biroq, bu o'zgaruvchi uchun GetType usuli hali ham o'zgaruvchiga tegishli turni qaytaradi. Ya'ni, bu holda, Shaxs tipidagi ob'ekt.

ToString, Equals, GetHashCode usullaridan farqli o'laroq, GetType usuli bekor qilinmaydi.


Equals usuli
Equals usuli ikkita ob'ektni tenglik uchun solishtirish imkonini beradi:
class Person
{
public string Name { get; set; }
public override bool Equals(object obj)
{
if (obj.GetType() != this.GetType()) return false;
Person person = (Person)obj;
return (this.Name == person.Name);
}
}
Equals usuli har qanday turdagi ob'ektni parametr sifatida qabul qiladi, agar ular bir xil sinf ob'ektlari bo'lsa, biz uni joriy ob'ektga o'tkazamiz. Keyin ism bo'yicha taqqoslaymiz. Agar nomlar teng bo'lsa, biz true ni qaytaramiz, bu esa ob'ektlar teng ekanligini aytadi. Biroq, agar kerak bo'lsa, usulni amalga oshirish yanada murakkablashtirilishi mumkin, masalan, agar mavjud bo'lsa, uni bir nechta xususiyatlar bilan solishtirish mumkin.

Usulni qo'llash:


Person person1 = new Person { Name = "Tom" };
Person person2 = new Person { Name = "Bob" };
Person person3 = new Person { Name = "Tom" };
bool p1Ep2 = person1.Equals(person2); // false
bool p1Ep3 = person1.Equals(person3); // true
Va agar siz ikkita murakkab ob'ektni taqqoslashingiz kerak bo'lsa, bu holatda bo'lgani kabi, standart == operatsiyasidan ko'ra Equals usulidan foydalangan ma'qul.



tải về 70.5 Kb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   12




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương