1
เหตุใดฉันจึงไม่สามารถใช้ตัวดำเนินการการขยายค่าว่างในนิพจน์แลมบ์ดาได้
ฉันมักจะใช้ตัวดำเนินการเผยแพร่ค่าว่างในโค้ดของฉันเพราะมันทำให้ฉันมีโค้ดที่อ่านได้ง่ายขึ้นโดยเฉพาะในการสืบค้นแบบยาวฉันไม่ต้องตรวจสอบค่า null ทุกคลาสที่ใช้ โค้ดต่อไปนี้แสดงข้อผิดพลาดในการคอมไพล์ที่เราไม่สามารถใช้ตัวดำเนินการโฆษณาแบบ null ในแลมบ์ดาได้ var cnt = humans.AsQueryable().Count(a => a.House?[0].Price == 5000); ความผิดพลาด : ข้อผิดพลาด CS8072 แลมบ์ดาแผนผังนิพจน์อาจไม่มีตัวดำเนินการการเผยแพร่ค่าว่าง C # สามารถแปลโค้ดด้านบนเป็นโค้ดเป็นโค้ดต่อไปนี้ได้อย่างง่ายดายหากทำอย่างอื่นไม่ได้! var cnt = humans.AsQueryable().Count(a => a.House != null && a.House[0].Price == 5000); ฉันสงสัยว่าทำไม C # ไม่ทำอะไรเลยและเพียงแค่แสดงข้อผิดพลาดของคอมไพเลอร์?