Dasturiy injiniring fanidan mustaqil ishi mavzu: sinflar, metodlar, xususiyatlar


Download 103.87 Kb.
bet5/6
Sana22.02.2023
Hajmi103.87 Kb.
#1222630
1   2   3   4   5   6
Bog'liq
SINFLAR, METODLAR, XUSUSIYATLAR

XUSUSIYATLAR
Oddiy usullarga qo'shimcha ravishda, C# tilida xususiyatlar deb ataladigan maxsus kirish usullari mavjud. Ular sinflar va tuzilmalar maydonlariga oson kirishni ta'minlaydi, ularning ma'nosini bilib oladi yoki ularni o'rnatadi.
Dastlab, mulk ta'riflari turli xil modifikatorlar, xususan, kirish modifikatorlari bo'lishi mumkin. Keyin mulk turi ko'rsatiladi, undan keyin mulk nomi keladi. Mulkning to'liq ta'rifi ikkita blokni o'z ichiga oladi: get va set.
Get blokida mulk qiymatini olish uchun harakatlar amalga oshiriladi. Ushbu blokda qaytish operatoridan foydalanib, ba'zi qiymatlarni qaytaring.
O'rnatish blokida xususiyat qiymati o'rnatiladi. Ushbu blokda qiymat parametri yordamida biz mulkka berilgan qiymatni olishimiz mumkin.
Get va set bloklari, shuningdek, aksesorlar yoki kirish usullari (mulk qiymatiga), shuningdek qabul qiluvchi va sozlovchi deb nomlanadi.
Ya'ni, aslida, mulk hech narsani saqlamaydi, u tashqi kod va name o'zgaruvchisi o'rtasida vositachi vazifasini bajaradi.
Ushbu xususiyat orqali biz o'zgaruvchiga kirishni boshqarishimiz mumkin name. Get blokidagi mulkda maydon qiymatini qaytaring:

1

get { return name; }

Va set blokida name o'zgaruvchisining qiymatini o'rnating. Qiymat parametri name o'zgaruvchisiga uzatiladigan uzatiladigan qiymatni anglatadi.

1

set { name = value; }

Dasturda biz ushbu xususiyatga oddiy maydon sifatida murojaat qilishimiz mumkin. Agar biz unga biron bir qiymat tayinlasak, u holda set bloki ishga tushadi va uzatilgan qiymat value parametriga o'tkaziladi:

1

person.Name = "Tom";

Agar biz mulk qiymatini olsak, u holda get bloki ishga tushadi, bu aslida name o'zgaruvchisining qiymatini qaytaradi:



1

string personName = p.Name;

Ehtimol, savol tug'ilishi mumkin, agar biz ushbu vaziyatda odatdagi sinf maydonlarini bajara olsak, nima uchun xususiyatlar kerak? Ammo xususiyatlar qiymatni belgilash yoki olishda zarur bo'lishi mumkin bo'lgan qo'shimcha mantiqni qo'shishga imkon beradi. Masalan, biz yoshni tekshirishni belgilashimiz kerak:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Person person = new Person();
Console.WriteLine(person.Age); // 1
// изменяем значение свойства
person.Age = 37;
Console.WriteLine(person.Age); // 37
// пробуем передать недопустимое значение
person.Age = -23; // Возраст должен быть в диапазоне от 1 до 120
Console.WriteLine(person.Age); // 37 - возраст не изменился
class Person
{
int age = 1;
public int Age
{
set
{
if (value < 1 || value > 120)
Console.WriteLine("Возраст должен быть в диапазоне от 1 до 120");
else
age = value;
}
get { return age; }
}
}

Bunday holda, Age o'zgaruvchisi Foydalanuvchining yoshini saqlaydi. Biz ushbu o'zgaruvchiga to'g'ridan - to'g'ri murojaat qila olmaymiz-faqat Age xususiyati orqali. Bundan tashqari, set blokida biz biron bir oqilona diapazonga mos keladigan qiymatni o'rnatamiz. Shuning uchun, Age xususiyatiga ushbu diapazonga kiritilmagan qiymatni o'tkazishda o'zgaruvchining qiymati o'zgarmaydi:


Download 103.87 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling