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 เพียงพอนั่นคือสิ่งที่ต้องใช้ นั่นเป็นวิธีที่เหมาะสมในการหาเหตุผลเกี่ยวกับเรื่องนี้หรือฉันพลาดอะไรไป? ขอบคุณ …