Kompyuter ilmlari va dasturlashtirish


case "Attachment": // ... biron amallar bajarish ... break



Yüklə 3,87 Mb.
səhifə14/15
tarix23.07.2023
ölçüsü3,87 Mb.
#119835
1   ...   7   8   9   10   11   12   13   14   15
shernazarov Samandar (1)

case "Attachment":
// ... biron amallar bajarish ...
break;
default:
// ... biron amallar bajarish ...
break;
}
}
Bironta Control eventidagi metodni eventni chaqirib ishlatmaslik lozim
Masalan Button controli uchun click eventidagi metodni programma orqali buttonni click qilib chaqirmaslik lozim
Dastur joylashgan yo'lni kodda ishlatishda hardcode qimaslik. (var appPath = Environment.CurrentDirectory; kabi resurslarni ishlatish lozim)
Foydalanuvchiga Xatoliklar haqida xabar berish va bu xabar xatolikni bartaraf qilishda tushinarli bo'lishi lozim.
1ta oddiy faylda birdan ortiq classni aniqlamaslik lozim
Juda ko'p parametrli metod yaratmaslik lozim, agar metodda 4-5tadan ko'p parameter bo'lsa uni class yordamida aniqlash lozim
Collection qaytaruvchi metodlarda null o'rnida empty collection qaytarish lozim, chunki nullga tekshirishdan ko'ra count() tezroq ishlaydi
Proyektda ichma-ich papkalarni imkon qadar ishlatmaslik
Agar kodda database connection, socket, filestreamlar ishlatilgan bo'lsa doimo finally qismida close() qilish lozim
Starlarni birlashtirishda doimo StringBuilderni ishlatish lozim
Commentlar qayerda zarur bo'lsa o'sha yerga comment yozish, koddagi har bir qatorga yoki har bir e'lon qilingan o'zgaruvchiga comment yozish shart emas
Bundan tashqari agar class ko'p resursdan foydalanishga mo'ljallangan bo'lsa unda IDisposable interfeysidan foydalanish lozim, uning Dipose() metodi yordamida class ob'yekti ishlatilib bo'lingach uni tozalash mumkin. (IDisposable interfaseidan foydalanib yaratilgan class ob'yektini using() {} bloke yordamida ishlatganda Dispose() metodi avtomatik chaqiriladi)

Mavzu: LINQ texnologiyasi. LINQ so‘rovlarda agregatsiya metodlarini ishlatish. Sinfning konstanta maydonlari. Qism sinflar bilan ishlash

LINQ (Language-Integrated Query) - bu ma'lumot manbasidan so’rov olish uchun oddiy va qulay til. Ma'lumotlar manbayi sifatida - IEnumerable interfeysini (masalan, standart to'plamlar, massivlar) amalga oshiradigan obyekt, DataSet, XML hujjati bo'lishi mumkin. Ammo manba turidan qat'iy nazar, LINQ ma'lumotni olish uchun barchasi uchun bir xil usulni qo'llashga imkon beradi.


Qisqacha qilib aytganda LINQ - kodni ixchamlashtirish va oson o'qish imkoniyatini beradi va undan turli xil ma'lumot manbalari uchun so'rovlarda foydalanish mumkin.
LINQ ning bir nechta turi mavjud:

  • LINQ to Objects : Massivlar va to'plamlar bilan ishlash uchun ishlatiladi

  • LINQ to Entities : Entity Framework texnologiyasi orqali ma'lumotlar bazalariga kirishda foydalaniladi

  • LINQ dan Sql : MS SQL Server-da ma'lumotlarga kirish texnologiyasi

  • LINQ to XML : XML fayllari bilan ishlashda ishlatiladi

  • LINQ to DataSet : DataSet obyekti bilan ishlashda foydalaniladi

  • Parallel LINQ (PLINQ) : parallel so'rovlarni bajarish uchun ishlatiladi


LINQ so'rovlari natijalarni obyekt sifatida qaytaradi. Bu sizga natijalar to'plamida obyektga yo'naltirilgan yondashuvni ishlatishga va natijalarning turli formatlarini obyektlarga aylantirish haqida tashvishlanmaslikka imkon beradi.
LINQ-ning afzalliklari

  • Tanish til: Ishlab chiquvchilar ma'lumotlar manbalarining har bir turi yoki ma'lumotlar formati uchun yangi so'rovlar tilini o'rganishlari shart emas.

  • Kamroq kod yozish: Bu an'anaviy yondoshuv bilan taqqoslaganda yoziladigan kod miqdorini ancha kamaytiradi.

  • Tushunarli kod: LINQ kodni yanada tushunarli qiladi, shuning uchun boshqa ishlab chiquvchilar uni osonlikcha tushunishlari va saqlab turishlari mumkin.

  • Bir nechta ma'lumot manbalarini so'rov qilishning standartlashtirilgan usuli: Bir xil ma'lumot manbalariga so'rov yozish uchun bir xil LINQ sintaksisidan foydalanish mumkin.

  • So'rovlarning vaqt xavfsizligini kompilyatsiya qilish: kompilyatsiya vaqtida obyektlarning turini tekshirishni ta'minlaydi.

  • IntelliSense-ni qo'llab-quvvatlash: LINQ umumiy to'plamlar uchun IntelliSense-ni taqdim etadi.

  • Ma'lumotlarni shakllantirish: Siz har xil shakldagi ma'lumotlarni olishingiz mumkin.

LINQ dan foydalanish
LINQ dan foydalanish uchun bizga .Net Framework 3.5 va C# 3.0 kerak bo’ladi(foydalanish uchun minimum versiyalar).
System kutubxonasiga qo’shimcha ravishda System.Linq kutubxonasidan foydalanamiz.
Misol:
using System;
using System.Linq;
namespace LINQ_operations
{
class Program
{
static void Main(string[] args)
{
// Ma’lumotlar manbayi (massiv)
string[] names = { "Bill", "Steve", "James", "Mohan" };
// LINQ so’rovi
var myLinqQuery = from name in names
where name.Contains('a')
select name;
// So’rovni ishlatish
foreach (var name in myLinqQuery)
Console.WriteLine(name + " ");
Console.ReadKey();
//some comment
}
}
}
Natija:

Amaldagi LINQ metodlari ro'yxati

  • Select : tanlangan qiymatlarning proektsiyasini belgilaydi

  • Where : tanlov filtrini belgilaydi

  • OrderBy : elementlarni o'sish tartibida tartiblaydi

  • OrderByDescending : elementlarni kamayish tartibida tartiblaydi

  • ThenBy : elementlarni o'sish tartibida tartiblash uchun qo'shimcha shartlarni belgilaydi

  • ThenByDescending : elementlarni kamayish tartibida tartiblash uchun qo'shimcha shartlarni belgilaydi

  • Join : ma'lum bir shart asosida ikkita to'plamni birlashtiradi

  • GroupBy : elementlarni kalitlarga ko'ra guruhlaydi

  • ToLookup : barcha elementlarni lug'atga qo'shgan holda elementlarni kalitlarga ko'ra guruhlaydi

  • GroupJoin : elementlarning ikkala to'plamini va kalitlarga ko'ra guruhlanishini amalga oshiradi

  • Reverse : elementlarni teskari tartibda tartiblaydi

  • All : to'plamdagi barcha elementlarning ma'lum bir shartga javob berishini aniqlaydi

  • Any : to'plamdagi kamida bitta elementning ma'lum bir shartga javob berishini aniqlaydi

  • Contains : to'plamda ma'lum bir element mavjudligini aniqlaydi

  • Distinct : to'plamdagi nusxalarni(bir xil elementlarni) olib tashlaydi

  • Except : ikkita to'plamning farqini, ya'ni faqat bitta to'plamda mavjud elementlarni qaytaradi

  • Union : ikkita bir xil to'plamlarni birlashtiradi

  • Intersect : ikki to'plamning kesishmasini, ya'ni ikkala to'plamda ham bo'lgan elementlarning kesishmasini qaytaradi

  • Count : to'plamdagi ma'lum bir shartga javob beradigan elementlar sonini hisoblaydi

  • Sum : to'plamdagi sonli qiymatlar yig'indisini hisoblaydi

  • Average : to'plamdagi sonli qiymatlarning o'rtacha qiymatini hisoblaydi

  • Min : minimal qiymatni topadi

  • Max : maksimal qiymatni topadi

  • Take : ma'lum miqdordagi elementlarni tanlaydi

  • Skip : ma'lum miqdordagi elementlarni o'tkazib yuboradi

  • TakeWhile : agar shart to'g'ri bo'lsa, ketma-ketlik elementlari zanjirini qaytaradi

  • SkipWhile : ular berilgan shartni bajarishi sharti bilan elementlarni ketma-ketlikda o'tkazib yuboradi va keyin qolgan elementlarni qaytaradi

  • Concat : ikkita to'plamni birlashtiradi

  • Zip : ma'lum bir shartga muvofiq ikkita to'plamni birlashtiradi

  • First : to'plamdagi birinchi elementni tanlaydi

  • FirstOrDefault : to'plamdagi birinchi elementni tanlaydi yoki sukut bo'yicha qaytaradi

  • Single : to'plamning bitta elementini tanlaydi, agar to'plamda bir yoki bir nechta element bo'lsa, istisno hosil bo'ladi

  • SingleOrDefault : to'plamdagi birinchi elementni tanlaydi yoki sukut bo'yicha qaytaradi

  • ElementAt : ma'lum bir indeksda ketma-ketlik elementini tanlaydi

  • ElementAtOrDefault : muayyan indeksda yig'ish elementini tanlaydi yoki indeks doiradan tashqarida bo'lsa, sukut bo'yicha qaytaradi

  • Last : to'plamdagi oxirgi elementni tanlaydi

  • LastOrDefault : to'plamdagi so'nggi elementni tanlaydi yoki sukut bo'yicha qaytaradi

  • Sinflar qism bo'lishi mumkin. Ya'ni, biz bir xil sinf ta'rifiga ega bo'lgan bir nechta fayllarga ega bo'lishimiz mumkin va kompilyatsiya qilinganidan so'ng, bu ta'riflarning barchasi bittaga yig'iladi.
    Masalan, loyihada ikkita kodli faylni aniqlaylik. Bu fayllar qanday nomlanishi unchalik muhim emas. Masalan, PersonBase.cs va PersonAdditional.cs. Ushbu fayllardan birida (qaysi biri bo'lishidan qat'iy nazar) biz quyidagi sinfni aniqlaymiz:
    public partial class Person
    {
    public void Move()
    {
    Console.WriteLine("Men harakatlanaman");
    }
    }
    Boshqa faylda biz quyidagi sinfni aniqlaymiz:

  • public partial class Person
    {
    public void Eat()
    {
    Console.WriteLine("I am eating");
    }
    }

Shunday qilib, loyihadagi ikkita fayl bir xil Person sinfining ta'rifini o'z ichiga oladi, ular ikki xil usulni o'z ichiga oladi. Va bu erda aniqlangan ikkala sinf ham qism. Buning uchun ular partial kalit so'zi bilan aniqlanadi.

  • Keyin biz Person sinfining barcha usullaridan foydalanishimiz mumkin:
    class Program
    {
    static void Main(string[] args)
    {
    Person tom = new Person();
    tom.Move();
    tom.Eat();
    Console.ReadKey();
    }
    }
    Qism usullar. Qism sinflar qism usullarni o'z ichiga olishi mumkin. Bunday usullar partial kalit so'zi bilan ham aniqlanadi. Bundan tashqari, usul tanasi bo'lmagan qism usulning ta'rifi bitta qism sinfda, xuddi shu usulni amalga oshirish esa boshqa qism sinfda bo'ladi.
    Masalan, keling, yuqorida belgilangan Person sinflarini o'zgartiraylik. Birinchi sinf:
    public partial class Person
    {
    Yüklə 3,87 Mb.

    Dostları ilə paylaş:
1   ...   7   8   9   10   11   12   13   14   15




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə