Struct
Struct
kalit so'zi orqali yaratilgan tiplarda bir necha xil ma'lumot saqlasa bo'ladi.
public struct Nuqta
{
}
Structni yuqoridagidek e'lon qilamiz.Bu yerda struct
so'zi orqali Nuqta data tipi yaratildi.
Struct o'zining ichida quyidagicha ma'lumotlar saqlashi mumkin.
public struct Nuqta
{
public X {get; set;} //property
public Y {get; set;} //property
public void ChopEtish() =>
Console.WriteLine($"X:{X}, Y:{Y}"); //method
}
Struct bu value type ya'ni o'zgaruvchining ma'lumotlari stack
da turadi.Reference typeda o'zgaruvchining o'zi stackda,ma'lumotlari esa Heap
da turadi.
Class/Struct ichidagi barcha ma'lumotlar Member
deb ataladi.
public struct Nuqta
{ // member
public X {get; set;} // auto implemented property
public Y {get; set;}
public int x; //field
public void ChopEtish() =>
Console.WriteLine($"X:{X}, Y:{Y}"); //method
}
Property
Encapsulation
-murakkab tiplar ichidagi foydalanuvchiga unchalik qiziq bo'lmagan detallarni yashirish uchun ishlatiladi.
public struct Nuqta
{
//encapsulation-yashirish
private int x = 0;
public int GetX() => return x;
public int SetX(int value) =>x = value;
}
var a = new Nuqta();
a.Get();
a.Set(10);
Bunaqangi ovoragarchilikni oldini olish maqsadida,property
larni joriy etishdi.
public struct Nuqta
{
//encapsulation-yashirish
private int x = 0; //backing field
public int X //property
{
get => x;
set => x = value;
}
public int Y {get; set;}
//auto-implemented property
//yashirin backing fieldga ega
//compiler backing field yaratib beradi
}
Shu tarzda propertylar yaratildi.
Constructor
Constructor bu new
kalit so'zi orqali obyekt yaratilganda chaqiriladigan funksiya.
var a = new Nuqta();
lekin structureni ichida chaqirilayotgan funskiya mavjud bo'lmaydi.
Vazifalari:
obyekt yaratilganda chaqiriladi
obyekt initialize qilishi uchun ishlatiladi.
Oddiy funksiyalardan farqli o'laroq,constructorlarda return type mavjud emas.Sababi ular hech narsa qaytarmaydi.
Struct/Class ko'rinmas default parametr-less constructorga ega
Class/Struct nomi bilan bir xil bo'ladi
Default constructorpublic
bo'lishi shart
Top comments (0)