การป้องกันตัวชี้ที่เป็นโมฆะ

การป้องกันตัวชี้ที่เป็นโมฆะ ()  หรืออาจเรียกว่าการป้องกันวอยด์ () เป็นคุณสมบัติของภาษาโปรแกรมเชิงวัตถุ ว่าตัวชี้ใด ๆ (หรือ reference ไปยังวัตถุใด ๆ) จะไม่เป็นตัวชี้ที่เป็นโมฆะ (อาจเรียกว่า void หรือ null) เพราะถ้าหากโปรแกรมพยายามเรียกดูข้อมูลที่อยู่ที่ตัวชี้ (หรือ reference) เหล่านั้น จะสามารถทำให้เกิดเป็นสิ่งผิดปรกติ และ/หรือ ทำให้โปรแกรมล่มได้

การป้องกันตัวชี้ที่เป็นโมฆะคือการรับประกันเวลาคอมไพล์ ว่าจะไม่มีการขอดูข้อมูลที่อยู่ที่ตัวชี้ที่เป็นโมฆะโดยเด็ดขาด

 ในภาษาโปรแกรม 
ความพยายามในช่วงแรกที่จะรับประกันการป้องกันตัวชี้ที่เป็นโมฆะคือการออกแบบ ภาษาSelf

ภาษาไอเฟล มีการป้องกันตัวชี้ที่เป็นโมฆะตามมาตรฐาน ISO - ECMA ของมัน การป้องกันตัวชี้ที่เป็นโมฆะของมันได้ถูกนำมาใช้ใน EiffelStudio โดยเริ่มจาก เวอร์ชัน 6.1 และใช้วากยสัมพันธ์สมัยใหม่ที่ขึ้นต้นด้วย เวอร์ชัน 6.4

ภาษา Spec# ซึ่งเป็นภาษาวิจัยจาก Microsoft Research มีแนวคิดเรื่อง "ชนิดข้อมูลที่ไม่สามารถเป็นโมฆะได้" ซึ่งกล่าวถึงการป้องกันตัวชี้ที่เป็นโมฆะ

ถึงแม้ว่าภาษาบนระบบดอตเน็ตและดอตเน็ตเฟรมเวิร์กมักจะมีการป้องกันตัวชี้ที่เป็นโมฆะ ภาษา F# ได้รับการยกเว้นจากการป้องกันตัวชี้ที่เป็นโมฆะ

ภาษาซีชาร์ปจะตรวจสอบการป้องกันตัวชี้ที่เป็นโมฆะในเวลาคอมไพล์ตั้งแต่เวอร์ชัน 8 อย่างไรก็ตาม เพื่อให้เข้ากันได้กับภาษาเวอร์ชันที่เก่ากว่านั้น ผู้ใช้จะต้องเลือกใช้คุณลักษณะนี้ด้วยตนเอง แบบต่อโปรเจ็กต์หรือต่อไฟล์

ภาษาดาร์ตของกูเกิลรองรับการป้องกันตัวชี้ที่เป็นโมฆะตั้งแต่เวอร์ชัน 2.0 ในเดือนสิงหาคม 2018

ยังมีภาษาอื่น ๆ ที่ใช้ "ชนิดข้อมูลที่ไม่สามารถเป็นโมฆะได้" โดยปริยาย เช่น ภาษาคอตลิน () ของบริษัท JetBrains, ภาษารัสต์, และภาษาสวิฟต์ () ของ Apple

 อ้างอิง 

หมวดหมู่:การเขียนโปรแกรมเชิงวัตถุ