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

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

3
ชนิดส่งคืนที่ Nullable ใน PHP7
PHP 7 เปิดตัวส่งกลับชนิดประกาศ ซึ่งหมายความว่าตอนนี้ฉันสามารถระบุว่าค่าตอบแทนเป็นคลาสอินเทอร์เฟซอาร์เรย์ callable หรือหนึ่งในประเภทสเกลาร์ที่บอกใบ้ได้ใหม่ซึ่งเป็นไปได้สำหรับพารามิเตอร์ฟังก์ชัน function returnHello(): string { return 'hello'; } บ่อยครั้งที่มันเกิดขึ้นที่ค่าไม่ได้มีอยู่เสมอและคุณอาจส่งคืนบางสิ่งบางอย่างหรือเป็นโมฆะ ในขณะที่คุณสามารถทำให้พารามิเตอร์เป็นโมฆะได้โดยการตั้งค่าเริ่มต้นเป็นโมฆะ ( DateTime $time = null) ดูเหมือนจะไม่เป็นเช่นนั้นสำหรับวิธีการส่งคืน เป็นเช่นนั้นจริงหรือฉันไม่พบวิธีที่จะทำหรือไม่? สิ่งเหล่านี้ใช้ไม่ได้: function returnHello(): string? { return 'hello'; } function returnHello(): string|null { return 'hello'; }

5
ปัญหาประเภท Nullable กับ?: ผู้ประกอบการตามเงื่อนไข
มีคนอธิบายได้ไหมว่าทำไมสิ่งนี้ถึงใช้งานได้ใน C # .NET 2.0: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ... แต่นี่ไม่ใช่: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); แบบฟอร์มหลังทำให้ฉันมีข้อผิดพลาดในการคอมไพล์ "ไม่สามารถระบุชนิดของนิพจน์เงื่อนไขได้เนื่องจากไม่มีการแปลงโดยนัยระหว่าง '<null>' และ 'System.DateTime' ไม่ใช่ว่าฉันไม่สามารถใช้รูปแบบเดิมได้ แต่รูปแบบที่สองนั้นสอดคล้องกับส่วนที่เหลือของรหัสของฉันมากกว่า

4
ความแตกต่างระหว่าง nullable, __nullable และ _Nullable ใน Objective-C
ด้วย Xcode 6.3 มีการเพิ่มคำอธิบายประกอบใหม่เพื่อแสดงเจตนาของ API ในObjective-C ได้ดีขึ้น (และเพื่อให้แน่ใจว่ารองรับ Swift ได้ดีขึ้นแน่นอน) คำอธิบายประกอบเหล่านั้นเป็นของหลักสูตรnonnull, และnullablenull_unspecified แต่ด้วย Xcode 7 มีคำเตือนปรากฏขึ้นมากมายเช่น: ตัวชี้ไม่มีตัวระบุประเภท nullability (_Nonnull, _Nullable หรือ _Null_unspecified) นอกจากนั้น Apple ยังใช้ตัวระบุความสามารถในการทำให้เป็นโมฆะอีกประเภทหนึ่งโดยทำเครื่องหมายรหัส C (ที่มา ): CFArrayRef __nonnull CFArrayCreate( CFAllocatorRef __nullable allocator, const void * __nonnull * __nullable values, CFIndex numValues, const CFArrayCallBacks * __nullable callBacks); ดังนั้นเพื่อสรุปตอนนี้เรามีคำอธิบายประกอบแบบ nullability …

4
ตัวดำเนินการเปรียบเทียบทำงานอย่างไรกับ null int
ฉันเริ่มเรียนรู้ประเภท nullable และพบกับพฤติกรรมดังต่อไปนี้ ในขณะที่พยายาม nullable int ฉันเห็นตัวดำเนินการเปรียบเทียบให้ผลลัพธ์ที่ไม่คาดคิด ยกตัวอย่างเช่นในรหัสของฉันด้านล่างผลผลิตที่ฉันได้รับคือ"ทั้ง 1 และมีค่าเท่ากัน" หมายเหตุมันไม่พิมพ์ "null" เช่นกัน int? a = null; int? b = 1; if (a < b) Console.WriteLine("{0} is bigger than {1}", b, a); else if (a > b) Console.WriteLine("{0} is bigger than {1}", a, b); else Console.WriteLine("both {0} and {1} are …
151 c#  nullable 

6
ToString ที่ Nullable ()
ฉันเห็นสิ่งปลูกสร้างทุกแห่งเช่น: int? myVar = null; string test = myVar.HasValue ? myVar.Value.ToString() : string.Empty; ทำไมไม่ใช้เพียง: string test = myVar.ToString(); มันไม่เหมือนกันเหรอ? อย่างน้อย Reflector บอกว่า: public override string ToString() { if (!this.HasValue) { return ""; } return this.value.ToString(); } ดังนั้นนั่นถูกต้อง (เวอร์ชั่นที่สั้นกว่า) หรือฉันขาดอะไรไป?
142 c#  nullable 

9
วิธีการใช้คำอธิบายประกอบ @Nullable และ @Nonnull มีประสิทธิภาพมากขึ้นได้อย่างไร
ฉันเห็นว่าคำอธิบายประกอบ@Nullableและอาจมีประโยชน์ในการป้องกันs แต่พวกเขาไม่เผยแพร่ไกลมาก@NonnullNullPointerException ประสิทธิผลของการเพิ่มความคิดเห็นเหล่านี้จะลดลงอย่างสมบูรณ์หลังจากผ่านไปหนึ่งระดับทางอ้อมดังนั้นหากคุณเพิ่มเพียงไม่กี่อย่างพวกเขาก็จะไม่เผยแพร่ไกลมากนัก เนื่องจากคำอธิบายประกอบเหล่านี้ไม่ได้บังคับใช้อย่างดีมีความเสี่ยงที่จะถือว่าค่าที่ทำเครื่องหมายด้วย@Nonnullนั้นไม่เป็นโมฆะดังนั้นจึงไม่สามารถทำการตรวจสอบโมฆะได้ โค้ดข้างล่างนี้เป็นสาเหตุของพารามิเตอร์ที่มีเครื่องหมาย@Nonnullที่จะเป็นnullโดยไม่ต้องเพิ่มข้อร้องเรียนใด ๆ มันจะพ่นNullPointerExceptionเมื่อมันถูกเรียกใช้ public class Clazz { public static void main(String[] args){ Clazz clazz = new Clazz(); // this line raises a complaint with the IDE (IntelliJ 11) clazz.directPathToA(null); // this line does not clazz.indirectPathToA(null); } public void indirectPathToA(Integer y){ directPathToA(y); } public void directPathToA(@Nonnull Integer …


6
ข้อผิดพลาดสตริง C # nullable
private string? typeOfContract { get { return (string?)ViewState["typeOfContract"]; } set { ViewState["typeOfContract"] = value; } } ต่อมาในรหัสฉันใช้มันเช่นนี้ typeOfContract = Request.QueryString["type"]; ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อประกาศการtypeOfContractระบุบรรทัด: ประเภท 'สตริง' ต้องเป็นประเภทค่าที่ไม่เป็นโมฆะเพื่อใช้เป็นพารามิเตอร์ 'T' ในประเภทหรือวิธีการทั่วไป 'System.Nullable <T>' ความคิดใด ๆ โดยทั่วไปฉันต้องการตรวจสอบให้แน่ใจว่า"type"มีอยู่ในQueryStringก่อนดำเนินการ
136 c#  nullable 


3
ตั้งค่าเป็น null ในการผูก WPF
โปรดดูที่บรรทัดต่อไปนี้ <TextBox Text="{Binding Price}"/> พร็อพเพอร์ตี้ Price จากด้านบนนี้เป็นDecimal?(ทศนิยมที่เป็นNullable) ฉันต้องการให้หากผู้ใช้ลบเนื้อหาของกล่องข้อความ (เช่นป้อนสตริงว่างควรอัปเดตซอร์สโดยอัตโนมัติด้วย null (ไม่มีอะไรใน VB) มีความคิดเห็นเกี่ยวกับวิธีทำ 'Xamly' บ้างไหม?

8
ไม่พบ @Nullable ใน javax.annotation *
ฉันต้องการใช้บันทึกย่อที่จะกำจัด@Nullable NullPointerExceptionsผมพบว่าบทเรียนบางอย่างในสุทธิผมสังเกตเห็นว่าคำอธิบายประกอบนี้มาจากแพคเกจjavax.annotation.Nullable; แต่เมื่อฉันนำเข้ามันเกิดข้อผิดพลาดในการคอมไพล์: ไม่พบสัญลักษณ์

9
ฉันจะใช้ DateTime.TryParse กับ Nullable <DateTime> ได้อย่างไร
ฉันต้องการใช้เมธอด DateTime.TryParse เพื่อรับค่าวันที่และเวลาของสตริงเป็น Nullable แต่เมื่อฉันลองสิ่งนี้: DateTime? d; bool success = DateTime.TryParse("some date text", out (DateTime)d); คอมไพเลอร์บอกฉัน อาร์กิวเมนต์ 'out' ไม่ได้จัดเป็นตัวแปร ไม่แน่ใจว่าต้องทำอะไรที่นี่ ฉันได้ลองแล้ว: out (DateTime)d.Value และไม่ได้ผลเช่นกัน ความคิดใด ๆ ?
115 c#  datetime  nullable 

7
C # ข้อ จำกัด ประเภททั่วไปสำหรับทุกสิ่งที่เป็นโมฆะ
ดังนั้นฉันจึงมีคลาสนี้: public class Foo&lt;T&gt; where T : ??? { private T item; public bool IsNull() { return item == null; } } ตอนนี้ฉันกำลังมองหาข้อ จำกัด nullประเภทที่ช่วยให้ผมใช้ทุกอย่างที่เป็นพารามิเตอร์ชนิดที่สามารถ นั่นหมายถึงประเภทการอ้างอิงทั้งหมดรวมถึงประเภทNullable( T?) ทั้งหมด: Foo&lt;String&gt; ... = ... Foo&lt;int?&gt; ... = ... ควรจะเป็นไปได้ การใช้classเป็นข้อ จำกัด ประเภททำให้ฉันใช้ประเภทอ้างอิงเท่านั้น ข้อมูลเพิ่มเติม: ฉันกำลังเขียนแอปพลิเคชั่นไปป์และฟิลเตอร์และต้องการใช้nullข้อมูลอ้างอิงเป็นรายการสุดท้ายที่ผ่านเข้าไปในไปป์ไลน์เพื่อให้ตัวกรองทุกตัวสามารถปิดได้อย่างสวยงามทำการล้างข้อมูล ฯลฯ ...
111 c#  generics  nullable 

6
วิธีใช้คีย์เวิร์ด Objective-C แบบ nonnull และ nullable ในวิธี API แบบบล็อก
พิจารณาวิธีการต่อไปนี้ - (void)methodWithArg:(NSString *)arg1 andArg:(NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler; ด้วยคำหลักใหม่nonnullและnullable คำอธิบายประกอบเราสามารถเพิ่มคุณค่าได้ดังนี้: - (void)methodWithArg:(nonnull NSString *)arg1 andArg:(nullable NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler; แต่เรายังได้รับคำเตือนนี้: ตัวชี้ไม่มีตัวระบุประเภท nullability (__nonnull หรือ __nullable) หมายถึงพารามิเตอร์ที่สาม (บล็อกที่หนึ่ง) เอกสารไม่ครอบคลุมกับตัวอย่างวิธีการระบุ nullability ของพารามิเตอร์บล็อก มันระบุคำต่อคำ คุณสามารถใช้รูปแบบที่ไม่ขีดเส้นใต้ที่เป็นค่าว่างและไม่เป็นค่าว่างได้ทันทีหลังจากวงเล็บเปิดตราบใดที่ชนิดนั้นเป็นวัตถุธรรมดาหรือตัวชี้บล็อก ฉันลองใส่หนึ่งในสองคำหลักสำหรับบล็อก (ในตำแหน่งใดก็ได้) โดยไม่มีโชค ลองใช้รูปแบบที่นำหน้าขีดล่างด้วย ( __nonnullและ__nullable) ดังนั้นคำถามของฉันคือฉันจะระบุความหมายเชิงโมฆะสำหรับพารามิเตอร์บล็อกได้อย่างไร

3
ค่าเริ่มต้นของประเภท "int" ที่เป็นโมฆะคืออะไร (รวมเครื่องหมายคำถาม)?
ใน C # ค่าเริ่มต้นของตัวแปรประเภทอินสแตนซ์คลาสint?คืออะไร? ตัวอย่างเช่นในรหัสต่อไปนี้จะMyNullableIntมีค่าใดหากไม่ได้กำหนดไว้อย่างชัดเจน class MyClass { public int? MyNullableInt; } (ดูเหมือนว่าคำตอบนั้นเกือบจะแน่นอนnullหรือ0แต่คำตอบนั้นคือข้อใด)
107 c#  integer  nullable 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.