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

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

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

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

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

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

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

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

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

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

อ้างอิง 

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