2. Statik konstruktor. Oddiy konstruktorlardan tashqari, sinfda statik konstruktorlar ham bo'lishi mumkin. Statik konstruktorlar quyidagi o'ziga xos xususiyatlarga ega:
Statik konstruktorlarda kirish modifikatori bo'lmasligi va parametrlarni qabul qilmasligi kerak
Statik usullarda bo'lgani kabi, statik konstruktorlarda siz this kalit so'zidan joriy sinf ob'ektiga murojaat qila olmaysiz va siz faqat statik sinf a'zolariga kira olasiz.
Statik konstruktorlarni dasturda qo'lda chaqirish mumkin emas. Ular avtomatik ravishda ushbu toifadagi ob'ektni birinchi yaratilishida yoki uning statik a'zolariga birinchi qo'ng'iroqda (agar mavjud bo'lsa) avtomatik ravishda bajariladi.
Statik konstruktorlar odatda statik ma'lumotlarni ishga tushirish uchun ishlatiladi yoki ular faqat bir marta bajarilishi kerak bo'lgan amallarni bajaradi.
Keling, statik konstruktorni aniqlaymiz:
class User { static User() { Console.WriteLine("Birinchi foydalanuvchi yaratildi "); } } class Program { static void Main(string[] args) { User user1 = new User(); // bu erda statik konstruktor ishlaydi User user2 = new User(); Console.Read(); } }
3. Statik sinflar.Statik sinflar static modifikatori bilan e'lon qilinadi va faqat statik maydonlar, xususiyatlar va usullarni o'z ichiga olishi mumkin. Masalan, agar Account sinfida faqat statik o'zgaruvchilar, xususiyatlar va usullar bo'lsa, u statik deb e'lon qilinishi mumkin:
static class Account { private static decimal minSum = 100; // barcha hisoblar uchun ruxsat etilgan minimal miqdor public static decimal MinSum { get { return minSum; } set { if(value>0) minSum = value; } } // ma'lum vaqtdan keyin hisobdagi summani ma'lum stavkada hisoblash public static decimal GetSum(decimal sum, decimal rate, int period) { decimal result = sum; for (int i = 1; i <= period; i++) result = result + result * rate / 100; return result; } } C #da statik sinfning yaxshi namunasi Math sinfidir, u turli matematik operatsiyalar uchun ishlatiladi.
Adabiyotlar 1. https://metanit.com/sharp/tutorial/3.6.php -
2. https://youtu.be/fd4k8GrH0Yc - static modifikatori. Statik sinflar va sinf a'zolari C# da video roliklar.
3. https://metanit.com/sharp/questions/2.10.php – Sinfning statik a'zolari.