คำถามติดแท็ก nullable

แท็ก nullable สำหรับปัญหาที่เกี่ยวข้องกับสมาชิกหรือประเภท nullable null ใช้เพื่อแสดงค่าที่หายไปหรือไม่รู้จัก

19
C # วิธีที่สวยงามในการตรวจสอบว่าคุณสมบัติของคุณสมบัติเป็นโมฆะหรือไม่
ใน 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 …

19
ช่องทำเครื่องหมายสำหรับบูลีนที่เป็นโมฆะ
โมเดลของฉันมีบูลีนที่ต้องเป็นโมฆะ public bool? Foo { get; set; } ดังนั้นใน Razor cshtml ของฉันฉันมี @Html.CheckBoxFor(m => m.Foo) ยกเว้นไม่ได้ผล ไม่หล่อด้วย (บูล) ถ้าฉันทำ @Html.CheckBoxFor(m => m.Foo.Value) ที่ไม่สร้างข้อผิดพลาด แต่ไม่ผูกกับโมเดลของฉันเมื่อโพสต์และ foo ถูกตั้งค่าเป็น null วิธีใดเป็นวิธีที่ดีที่สุดในการแสดง Foo บนเพจและทำให้มันเชื่อมโยงกับโมเดลของฉันในโพสต์

3
เหตุใดการเพิ่ม Nullable <int> จึงไม่ทำให้เกิดข้อยกเว้น
คุณช่วยอธิบายได้ไหมทำไม Console.WriteLine เขียนบรรทัดว่าง ( Console.WriteLine(null)ให้ข้อผิดพลาดในการคอมไพล์) และทำไมไม่มี NullReferenceException ( a+=1ไม่ควรเพิ่ม) int? a = null; a++; // Why there is not NullReferenceException? Console.WriteLine(a); // Empty line
99 c#  .net  nullable 

3
ทำตัวดำเนินการลัดวงจร || และ && มีอยู่สำหรับบูลีนที่เป็นโมฆะ? บางครั้ง RuntimeBinder ก็คิดเช่นนั้น
ฉันอ่านข้อกำหนดภาษา C # บนตัวดำเนินการตรรกะแบบมีเงื่อนไข ||และ&amp;&amp;หรือที่เรียกว่าตัวดำเนินการทางตรรกะที่ลัดวงจร สำหรับฉันแล้วมันดูเหมือนไม่ชัดเจนว่าสิ่งเหล่านี้มีอยู่สำหรับบูลีนที่เป็นโมฆะหรือไม่เช่นประเภทตัวถูกดำเนินการNullable&lt;bool&gt;(เขียนด้วยbool?) ดังนั้นฉันจึงลองด้วยการพิมพ์แบบไม่ไดนามิก: bool a = true; bool? b = null; bool? xxxx = b || a; // compile-time error, || can't be applied to these types ดูเหมือนจะช่วยชำระคำถามได้ (ฉันไม่เข้าใจข้อกำหนดอย่างชัดเจน แต่สมมติว่าการใช้งานคอมไพเลอร์ Visual C # ถูกต้องตอนนี้ฉันรู้แล้ว) อย่างไรก็ตามฉันก็อยากลองdynamicผูกด้วยเช่นกัน ดังนั้นฉันจึงลองสิ่งนี้แทน: static class Program { static dynamic A { get { …

6
คุณควรยืนยันว่าไม่ได้เป็นโมฆะกับคำสั่งยืนยันในรหัสการผลิต? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดเมื่อเดือนที่แล้ว ฉันเคยเห็นคำถามนี้แต่มีคำถามอีกสองสามข้อเกี่ยวกับการใช้assertคำหลัก ผมได้รับการโต้วาทีกับ coders อื่น ๆ assertน้อยเกี่ยวกับการใช้ สำหรับกรณีการใช้งานนี้มีวิธีการที่สามารถคืนค่า Null ได้หากตรงตามข้อกำหนดเบื้องต้นบางประการ รหัสที่ฉันเขียนเรียกวิธีการนั้นยืนยันว่ามันจะไม่คืนค่าว่างเปล่าและยังคงใช้วัตถุที่ส่งคืน ตัวอย่าง: class CustomObject { private Object object; @Nullable public Object getObject() { return (object == null) ? generateObject() : object; } } ตอนนี้คิดว่าฉันใช้มันเช่นนี้: public void useObject(CustomObject customObject) { object = customObject.getObject(); assert object != …
32 java  assert  nullable 

1
วิธีการใช้. NET reflection เพื่อตรวจสอบชนิดอ้างอิง nullable
C # 8.0 แนะนำประเภทอ้างอิงที่ไม่มีค่า นี่คือคลาสธรรมดาที่มีคุณสมบัติเป็นโมฆะ: public class Foo { public String? Bar { get; set; } } มีวิธีการตรวจสอบทรัพย์สินชั้นใช้ประเภทอ้างอิง nullable ผ่านการสะท้อน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.