Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MvxconvertingTargetbinding null referans istisnalarını nasıl önler?


MvxconvertingTargetbinding null referans istisnalarını nasıl önler?


MVVMCross'ta `mvxconvertingTargetBinding`, boş değerlerin ve dönüşümlerin güçlü kullanımı sağlayan birkaç temel özellik uygulayarak boş referans istisnalarını önlemek için tasarlanmıştır. Bu tür istisnaları önlemeye nasıl yardımcı olur:

1. Temel sınıf yapısı: `mvxconvertingTgetbinding ', bağları işlemek için bir temel sağlayan` mvxtargetbinding' 'den miras alır. Bu temel sınıf, hedef nesneyi yönetmek ve doğal olarak null referanslar için kontrolleri içeren olayları işleme mekanizmaları içerir.

2. Hedefe zayıf referans: `mvxconvertingTargetbinding` türettiği` mvxtargetbinding` sınıfı, hedef nesneyi tutmak için bir `` zayıf referans '' kullanır. Bu yaklaşım bellek sızıntılarını önlemeye yardımcı olur ve hedef nesnenin gerekirse çöp toplanmasını sağlar. Boş referans istisnalarını doğrudan önlemese de, nesne ömrünü yönetmeye yardımcı olur ve beklenmedik boşluk olasılığını azaltır.

3.. Bu yöntemler, geliştiricilerin belirli koşullar karşılanması durumunda bir değer belirlemeyi atlayabilecek mantık uygulamasına izin verir ve potansiyel olarak null değerlerin sorunlara neden olabileceği senaryolardan kaçınır.

4. Dönüştürücü Desteği: `MVXConvertingTargetBinding'in birincil işlevi, değerleri kaynak ve hedef arasında dönüştürmek için kullanılan dönüştürücüleri desteklemektir. Dönüştürücüler kendileri doğal olarak null referans istisnalarını önlemezken, boş değerleri zarif bir şekilde işlemek için tasarlanabilirler. Örneğin, bir dönüştürücü, giriş NULL ise varsayılan bir değer veya boş bir dize döndürebilir.

5. Olay İşlemesi: İki yönlü bağlamalarda, hedef değiştiğinde kaynağı güncellemek için MVXConvertingTargetBinding 'olayları işler. Olay işleyicilerinin uygun şekilde takılmasını ve müstakil olmasını sağlar, bu da boş nesnelerde yöntemleri çağırma girişimlerinden kaçınarak boş referans istisnalarının önlenmesine yardımcı olur.

6. Savunma Programlama Uygulamaları: MVXConvertingTgetbinding 'sınıfının kendisinin açıkça bir parçası olmasa da, bu sınıfı kullanan geliştiriciler savunma programlama uygulamalarını takip etmeye teşvik edilmektedir. Bu, kullanmaya çalışmadan önce boş referansların kontrol edilmesini içerir, bu da boş referans istisnalarının önlenmesinde çok önemlidir.

Özetle, `` mvxconvertingTargetbinding '' nin açık null kontrolleri yoluyla null referans istisnalarını doğrudan önlemese de, bağlamaların ve dönüşümlerin güçlü bir şekilde işlenmesini teşvik eden ve bu istisnaların olasılığını azaltan bir çerçeve sağlar. Geliştiriciler, kodlarının null referans istisnalarına karşı sağlam olduğundan emin olmak için bu sınıfı kullanırken null kontroller ve savunma programlama uygulamaları uygulamalıdır.

Alıntılar:
[1] https://www.mvvmcross.com/documentation/adved/custom-data-binding
[2] http://mcx.space/wiki/index.cgi?doc%2freadme
[3] https://rubberduckvba.blog/2020/10/25/making-mvvm-work-in-vba-part-3-bindings/
[4] https://blog.postsharp.net/nulleferenceexception-orgject-reference-not-set
[5] https://www.christianfindlay.com/blog/stop-nulreferenceexceptions
[6] https://github.com/whitphx/vscode-macs-mcx
[7] https://stackoverflow.com/questions/63497549/binding-eonwaytosource-withime-initalizization-ofgget
[8] https://learn.microsoft.com/en-us/dotnet/api/system.nullreferenceexception?view=net-9.0