คุณลักษณะที่เป็นโมฆะในบริบทของ MVVMCROSS หรือกรอบ MVVM ใด ๆ มีประโยชน์ในหลาย ๆ สถานการณ์ คุณลักษณะเหล่านี้ช่วยชี้แจงความตั้งใจของรหัสของคุณทำให้เข้าใจได้ง่ายขึ้นและคลุมเครือน้อยลง นี่คือสถานการณ์โดยละเอียดที่คุณลักษณะที่เป็นโมฆะเป็นประโยชน์อย่างยิ่ง:
1. การป้องกันข้อยกเว้นอ้างอิง null **
ใน MVVMCROSS เช่นเดียวกับเฟรมเวิร์กอื่น ๆ การใช้ประเภทอ้างอิงที่เป็นโมฆะช่วยป้องกันข้อยกเว้นการอ้างอิงที่เป็นโมฆะ โดยการทำเครื่องหมายประเภทการอ้างอิงอย่างชัดเจนว่าเป็นโมฆะนักพัฒนาจะถูกบังคับให้ตรวจสอบ NULL ก่อนที่จะเข้าถึงคุณสมบัติหรือวิธีการลดความเสี่ยงของข้อผิดพลาดรันไทม์ สิ่งนี้มีความสำคัญอย่างยิ่งในการพัฒนาข้ามแพลตฟอร์มซึ่งแพลตฟอร์มที่แตกต่างกันอาจจัดการกับโมฆะแตกต่างกัน
2. แสดงความตั้งใจและลดความกำกวม **
แอตทริบิวต์ที่เป็นโมฆะทำให้รหัสแสดงออกได้มากขึ้นโดยระบุอย่างชัดเจนว่าพารามิเตอร์คุณสมบัติหรือวิธีการสามารถเป็นโมฆะได้หรือไม่ ความชัดเจนนี้มีความสำคัญในกรอบ MVVM ที่การเชื่อมโยงข้อมูลและการเปลี่ยนแปลงคุณสมบัติเป็นเรื่องปกติ ตัวอย่างเช่นหากทรัพย์สินถูกทำเครื่องหมายว่าเป็นโมฆะมันจะบ่งบอกได้ทันทีว่าอาจไม่มีค่าเสมอไปนำทางนักพัฒนาอื่น ๆ เกี่ยวกับวิธีการจัดการ
3. การปรับปรุงการเชื่อมโยงข้อมูล **
ใน MVVMCROSS การเชื่อมข้อมูลเป็นคุณสมบัติหลัก แอตทริบิวต์ที่เป็นโมฆะสามารถช่วยให้แน่ใจว่าการดำเนินการเชื่อมโยงข้อมูลปลอดภัยและคาดการณ์ได้มากขึ้น หากคุณสมบัติเป็นโมฆะเฟรมเวิร์กและนักพัฒนาอื่น ๆ จะรู้ว่าจะจัดการได้อย่างเหมาะสมหลีกเลี่ยงค่า NULL ที่ไม่คาดคิดในระหว่างการเชื่อมโยงข้อมูล
4. การปรับปรุงเอกสาร API และการใช้งาน **
เมื่อใช้แอตทริบิวต์ที่เป็นโมฆะใน MVVMCROSS APIs มันจะชัดเจนขึ้นสำหรับผู้ใช้ APIs เหล่านั้นว่าควรใช้อย่างไร ตัวอย่างเช่นหากพารามิเตอร์วิธีการถูกทำเครื่องหมายว่าเป็นโมฆะแสดงว่าการส่งผ่าน null เป็นสถานการณ์ที่ถูกต้องซึ่งอาจส่งผลต่อวิธีการทำงานของวิธีการ ความชัดเจนนี้ช่วยป้องกันการใช้ในทางที่ผิดและลดความจำเป็นในการจัดทำเอกสารที่กว้างขวางเกี่ยวกับการจัดการว่าง
5. ป้องกันการโจมตีที่ไม่ค่อยดี **
เช่นเดียวกับแนวคิดในเว็บแอปพลิเคชันคุณลักษณะที่เป็นโมฆะสามารถป้องกันสถานการณ์ที่ข้อมูลอาจถูกละเว้นโดยเจตนาหรือไม่ได้ตั้งใจ ใน MVVMCROSS หากคุณสมบัติเป็นโมฆะและจำเป็นต้องทำให้มั่นใจได้ว่าเฟรมเวิร์กจะตรวจสอบสถานะของมันเพื่อป้องกันไม่ให้ใช้ค่าเริ่มต้นที่ไม่คาดคิด
6. การโยกย้ายไปยังประเภทอ้างอิงที่เป็นโมฆะ **
ในฐานะที่เป็น C# วิวัฒนาการด้วยคุณสมบัติเช่นประเภทอ้างอิงที่เป็นโมฆะเฟรมเวิร์กเช่น MVVMCROSS กำลังปรับตัวโดยการรวมคุณลักษณะที่เป็นโมฆะไว้ใน API ของพวกเขา การเปลี่ยนแปลงนี้ช่วยให้นักพัฒนาอพยพโครงการของพวกเขาเพื่อใช้ประเภทการอ้างอิงที่ไม่มีค่าใช้จ่ายได้อย่างมีประสิทธิภาพมากขึ้นทำให้มั่นใจได้ถึงความปลอดภัยที่ดีขึ้นและลดข้อผิดพลาดรันไทม์
โดยสรุปคุณลักษณะที่เป็นโมฆะใน MVVMcross มีประโยชน์ในการเพิ่มความชัดเจนของรหัสป้องกันข้อยกเว้นอ้างอิงที่เป็นโมฆะปรับปรุงความปลอดภัยของข้อมูลที่มีผลผูกพันและแนวทางการใช้ API พวกเขายังมีบทบาทสำคัญในการปรับให้เข้ากับคุณสมบัติ C# ที่ทันสมัยเช่นประเภทอ้างอิงที่ว่างเปล่า
การอ้างอิง:[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-nullable-reference-types/
[5] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[6] https://stackoverflow.com/questions/52351636/mvvmcross-viewmodel-is-always-null-in-xamarin-android-but-it-is-accessible-in-xa
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://github.com/mvvmcross/mvvmcross