ดูเหมือนว่าสำหรับฉันไม่มีการรับประกันว่าตัวแปรที่ไม่เป็นโมฆะจะไม่มีโมฆะ ลองนึกภาพฉันมีชั้นเรียนที่มีคุณสมบัติหนึ่งที่ไม่เป็นโมฆะ:
public class Foo
{
public Foo(string test)
{
Test = test;
}
public string Test {get;set;}
}
ตอนนี้อาจดูเหมือนว่าตอนนี้ไม่สามารถเป็นค่าว่างได้ แต่ถ้าเราอ้างอิงคลาสนี้กับไลบรารี่อื่นที่ไม่ได้ใช้บริบทที่ไม่มีค่าใด ๆ จะไม่มีสิ่งใดหยุดมันจากการส่งค่า null ในนั้น
ถูกต้องหรือมีการตรวจสอบรันไทม์บางอย่างเช่นกันซึ่งอาจทำให้แน่ใจได้
public void Foo(string test){...}
หรือpublic Foo(string test){...}
?