ใน C # บอกว่าคุณต้องการดึงค่าออกจาก PropertyC ในตัวอย่างนี้และ ObjectA, PropertyA และ PropertyB ทั้งหมดสามารถเป็นค่าว่างได้
ObjectA.PropertyA.PropertyB.PropertyC
ฉันจะรับ PropertyC อย่างปลอดภัยโดยใช้รหัสน้อยที่สุดได้อย่างไร?
ตอนนี้ฉันจะตรวจสอบ:
if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)
{
// safely pull off the value
int value = objectA.PropertyA.PropertyB.PropertyC;
}
มันจะเป็นการดีที่จะทำอะไรแบบนี้ (รหัสหลอก)
int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;
อาจยุบลงไปอีกด้วยตัวดำเนินการเชื่อมต่อแบบ null
แก้ไขเดิมทีฉันบอกว่าตัวอย่างที่สองของฉันเป็นเหมือน js แต่ฉันเปลี่ยนเป็นรหัส psuedo เนื่องจากมีการชี้ให้เห็นอย่างถูกต้องว่ามันจะไม่ทำงานใน js
ObjectA
หรือPropertyA
เป็นโมฆะ