คำถามติดแท็ก readonly-collection

5
ReadOnlyCollection หรือ IEnumerable สำหรับการเปิดเผยคอลเลกชันของสมาชิก?
มีเหตุผลใดหรือไม่ที่จะเปิดเผยคอลเลกชันภายในเป็น ReadOnlyCollection แทนที่จะเป็น IEnumerable หากรหัสการโทรวนซ้ำบนคอลเลกชันเท่านั้น class Bar { private ICollection<Foo> foos; // Which one is to be preferred? public IEnumerable<Foo> Foos { ... } public ReadOnlyCollection<Foo> Foos { ... } } // Calling code: foreach (var f in bar.Foos) DoSomething(f); อย่างที่ฉันเห็น IEnumerable เป็นส่วนย่อยของอินเทอร์เฟซของ ReadOnlyCollection และไม่อนุญาตให้ผู้ใช้แก้ไขคอลเล็กชัน ดังนั้นหากอินเทอร์เฟซ IEnumberable เพียงพอนั่นคือสิ่งที่ต้องใช้ นั่นเป็นวิธีที่เหมาะสมในการหาเหตุผลเกี่ยวกับเรื่องนี้หรือฉันพลาดอะไรไป? ขอบคุณ …

6
รายการอ่านอย่างเดียวหรือรายการที่ไม่สามารถแก้ไขได้ใน. NET 4.0
จากสิ่งที่ฉันสามารถบอกได้ว่า. NET 4.0 ยังขาดรายการแบบอ่านอย่างเดียว เหตุใดเฟรมเวิร์กจึงยังขาดฟังก์ชันนี้ นี่เป็นฟังก์ชันที่ใช้กันทั่วไปสำหรับการออกแบบที่ขับเคลื่อนด้วยโดเมนไม่ใช่หรือ ข้อดีอย่างหนึ่งที่ Java มีเหนือ C # คือในรูปแบบของเมธอดCollections.unmodifiablelist (list)ซึ่งดูเหมือนว่าจะค้างชำระเป็นเวลานานใน IList <T> หรือ List <T> การใช้IEnumerable<T>เป็นวิธีแก้ปัญหาที่ง่ายที่สุด - ToListสามารถใช้และส่งคืนสำเนาได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.