4
วิธีที่ดีที่สุดในการเขียนวิธี“ ลอง” ใน C # 7 คืออะไร
ฉันกำลังเขียนการใช้ Queue ประเภทที่มีTryDequeueวิธีการที่ใช้รูปแบบคล้ายกับTryParseวิธีการ. NET ต่าง ๆซึ่งฉันส่งคืนค่าบูลีนหากการดำเนินการสำเร็จและใช้outพารามิเตอร์เพื่อส่งคืนค่าที่ถูกตัดจริง public bool TryDequeue(out Message message) => _innerQueue.TryDequeue(out message); ตอนนี้ฉันชอบหลีกเลี่ยงoutparams ทุกครั้งที่ทำได้ C # 7 ทำให้เรามีตัวแปรต่าง ๆ เพื่อให้การทำงานกับมันง่ายขึ้น แต่ฉันยังคงพิจารณาถึงความชั่วร้ายที่จำเป็นมากกว่าเครื่องมือที่มีประโยชน์ พฤติกรรมที่ฉันต้องการจากวิธีนี้มีดังนี้: หากมีรายการที่จะ dequeue คืนมัน หากไม่มีรายการที่จะถอน (คิวว่างเปล่าให้ผู้โทรมีข้อมูลเพียงพอที่จะดำเนินการอย่างเหมาะสม อย่าเพิ่งส่งคืนรายการที่ไม่มีค่าหากไม่มีรายการที่เหลืออยู่ อย่าโยนข้อยกเว้นหากพยายาม dequeue จากคิวที่ว่างเปล่า ตอนนี้ผู้เรียกใช้เมธอดนี้มักจะใช้รูปแบบดังต่อไปนี้ (โดยใช้ไวยากรณ์ตัวแปร C # 7 out): if (myMessageQueue.TryDequeue(out Message dequeued)) MyMessagingClass.SendMessage(dequeued) else Console.WriteLine("No messages!"); // do other …
21
c#