Negalima atributai MVVMCROSS ar bet kokio MVVM sistemoje yra naudingi keliuose konkrečiuose scenarijuose. Šie atributai padeda išsiaiškinti jūsų kodo tikslą, todėl jis tampa suprantamesnis ir ne toks dviprasmiškas. Čia yra keletas išsamių scenarijų, kai negaliojami atributai yra ypač naudingi:
1. NUSEKTŲ NUORODOS IŠSKIRTŲ IŠSKIRTINIMAS **
„MVVMCross“, kaip ir kitose sistemose, naudojimas negaliojančiais atskaitos rūšimis padeda išvengti niekinės atskaitos išimčių. Aiškiai pažymėdami nuorodų tipus kaip negaliojančius, kūrėjai yra priversti patikrinti, ar nėra NULL, prieš pasiekdami savybes ar metodus, sumažindami vykdymo laiko klaidų riziką. Tai ypač svarbu kuriant kryžminę platformą, kai skirtingos platformos gali skirtingai valdyti niekines.
2. Ketinimo išreiškimas ir dviprasmybės mažinimas **
Negalima atributai daro kodą išraiškingesnį aiškiai nurodant, ar nuosavybės, ar metodo parametras gali būti nulinis. Šis aiškumas yra labai svarbus MVVM sistemose, kai įprasti duomenys ir nuosavybės pokyčiai yra įprasti. Pavyzdžiui, jei nuosavybė yra pažymėta kaip negalima, ji iškart perteikia, kad ji ne visada turi vertę, vadovaudamas kitiems kūrėjams, kaip su ja elgtis.
3. Duomenų surišimo gerinimas **
„MVVMCross“ duomenimis duomenų surišimas yra pagrindinė savybė. Negalima atributai gali padėti užtikrinti, kad duomenų įrišimo operacijos būtų saugesnės ir labiau nuspėjamos. Jei nuosavybė yra panaikinta, sistema ir kiti kūrėjai žinos tinkamai ją tvarkyti, išvengdami netikėtų nulinių verčių duomenų įrišimo metu.
4. API dokumentų patobulinimas ir naudojimas **
Kai naudojami negaliojantys atributai MVVMCROSS API, tų API vartotojams tampa aiškiau, kaip jie turėtų būti naudojami. Pvz., Jei metodo parametras yra pažymėtas kaip negalima, tai rodo, kad NULL pravažiavimas yra tinkamas scenarijus, kuris gali paveikti metodą. Šis aiškumas padeda užkirsti kelią netinkamam naudojimui ir sumažina didelių dokumentų, susijusių su nuliniu tvarkymu, poreikį.
5. Apsaugokite nuo puolimų per mažą vietą **
Panašiai kaip žiniatinklio programų koncepcija, negaliojantys atributai gali apsaugoti nuo scenarijų, kai duomenys gali būti praleidžiami tyčia ar netyčia. MVVMCROSS, jei nuosavybė yra negalima ir reikalinga, ji užtikrins, kad sistema patvirtins jos buvimą, neleis naudoti netikėtų numatytųjų verčių.
6. Migracija į negaliojančias nuorodų tipus **
Tobulėjant C# su tokiomis funkcijomis kaip panaikinami nuorodos tipai, tokios sistemos kaip „MvVMCross“ prisitaiko į savo API įtraukdami negaliojančius atributus. Šis perėjimas padeda kūrėjams perkelti savo projektus efektyviau naudoti panaikinamus atskaitos tipus, užtikrindami geresnį niekinį saugumą ir sumažindami vykdymo laiko klaidas.
Apibendrinant galima pasakyti, kad „MVVMCross“ negaliojantys atributai yra naudingi siekiant sustiprinti kodų aiškumą, užkirsti kelią niekinės atskaitos išimtims, pagerinti duomenų surišimo saugą ir vadovauti API naudojimui. Jie taip pat vaidina lemiamą vaidmenį prisitaikant prie šiuolaikinių C# funkcijų, tokių kaip negaliojančios nuorodos tipai.
Citatos:[1] https://stackoverflow.com/questions/43688968/what-does-it-mean-for-a-property-to-be-required-nullable
[2] https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references
[3] https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/nullable-analysis
[4] https://xebia.com/blog/start-dealing-with-bullable-reference-types/
[5] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[6] https://stackoverflow.com/questions/52351636/mvvmcross-viewmodel-is-always-bull-in-xamarin-android-but-it-is-accessible-in-in-xa
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://github.com/mvvmcross/mvvmcross