3
การตรวจจับ IEnumerable“ สถานะเครื่อง”
ฉันเพิ่งอ่านบทความที่น่าสนใจที่เรียกว่าน่ารักเกินไปกับผลตอบแทน c # มันทำให้ฉันสงสัยว่าวิธีที่ดีที่สุดคือการตรวจสอบว่า IEnumerable เป็นคอลเล็กชันที่นับได้จริงหรือว่าเป็นเครื่องสถานะที่สร้างด้วยคีย์เวิร์ด yield ตัวอย่างเช่นคุณสามารถแก้ไข DoubleXValue (จากบทความ) เป็นดังนี้: private void DoubleXValue(IEnumerable<Point> points) { if(points is List<Point>) foreach (var point in points) point.X *= 2; else throw YouCantDoThatException(); } คำถามที่ 1) มีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่? คำถามที่ 2) นี่คือสิ่งที่ฉันควรกังวลเมื่อสร้าง API หรือไม่
17
c#
api-design