เหตุผลที่ผู้คนระมัดระวังในการใช้การสะท้อนโดยไม่จำเป็นนั้นไม่ได้มีประสิทธิภาพ: ใช่มีค่าใช้จ่ายในการใช้การสะท้อน แต่บ่อยครั้งการแก้ปัญหาโดยไม่ต้องใช้วิธีการอื่นที่มีความซับซ้อนเทียบเท่ากันและแม้ว่าจะไม่ได้ ไม่ค่อยมีนัยสำคัญ (โดยเฉพาะอย่างยิ่งสำหรับการพัฒนาระดับแอปพลิเคชัน)
การใช้การไตร่ตรองสมมติฐานที่สำคัญบางข้อที่ปกติแล้วเราสามารถทำได้เกี่ยวกับซอร์สโค้ดนั้นขาดและเครื่องมือต่าง ๆ เช่น "ค้นหาการอ้างอิงทั้งหมด" จะหยุดทำงานได้อย่างน่าเชื่อถือ การสะท้อนกลับยังลบความปลอดภัยส่วนใหญ่ที่คอมไพเลอร์บังคับใช้เช่น C # และข้อผิดพลาดในการเขียนโปรแกรมส่วนใหญ่ที่ระบบประเภทปกติจะตรวจจับและแปลเป็นข้อผิดพลาดของคอมไพเลอร์ตอนนี้กลายเป็นข้อผิดพลาดรันไทม์ที่ดีที่สุด
แล้วทำไมผู้คนถึงใช้การไตร่ตรอง? กล่าวง่ายๆเพราะแม้จะมีปัญหาตามที่อธิบายไว้ข้างต้นมันเป็นเครื่องมือที่มีค่ามาก ด้วยการไตร่ตรองประโยชน์บางประการของการเขียนโปรแกรมแบบไดนามิกสามารถเป็นภาษาแบบคงที่อย่างเคร่งครัดเช่น C # และภาษาโปรแกรมแบบไดนามิกได้แสดงให้เห็นประโยชน์ของพวกเขาเมื่อเร็ว ๆ นี้โดยเฉพาะอย่างยิ่งในขอบเขตของการเขียนโปรแกรมเว็บ - PHP, Javascript และ Python ใช้การพิมพ์แบบไดนามิกทั้งหมดและได้รับการพิสูจน์แล้วว่าเหมาะสำหรับการเขียนโปรแกรมเว็บ แต่เนื่องจากภาษายังคงเป็น C # คุณสามารถเลือกเก็บแอปพลิเคชันส่วนใหญ่ไว้ในสำนวน OOP ที่เคร่งครัดและเขียนส่วนเล็ก ๆ ที่พฤติกรรมแบบไดนามิกสร้างความแตกต่างด้วยการสะท้อน
ตัวอย่างทั่วไปคือเมื่อคุณจำเป็นต้องเปิดเผยวิธีการเป็นบริการโทรศัพท์ (ใช้โปรโตคอลที่ยังไม่ได้สร้างไว้ใน. NET) วิธีการของ OOP ที่พิมพ์อย่างเคร่งครัดนั้นใช้ได้ผล แต่ก็มีข้อ จำกัด และเงอะงะมากเกินไป แต่ถ้าคุณใช้การไตร่ตรองเพื่อแมปการเรียกไปยังเมธอดและคู่คีย์ / ค่ากับข้อโต้แย้งคุณสามารถเขียนการประปาสำหรับบริการบนเว็บดังกล่าวหนึ่งครั้งจากนั้นใช้งานในชั้นเรียนที่คุณต้องการ