การล่วงละเมิดทั่วไปคืออะไร?
ในขณะที่ตรวจสอบรหัสบางอย่างฉันสังเกตเห็นโอกาสที่จะเปลี่ยนเป็นใช้ชื่อสามัญ โค้ด (obfuscated) ดูเหมือนว่า: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } รหัสนี้อาจถูกแทนที่ด้วย generics เช่น: public void DoAllTheThings<T>(object[] possibleTargets[0]) { var someProperty = type(T).getProperty(possibleTargets[0]); ... } ในการวิจัยถึงประโยชน์และข้อบกพร่องของวิธีการนี้ผมพบว่าในระยะที่เรียกว่าการทำผิดกฎทั่วไป ดู: ปกป้องมือใหม่ (ผู้พัฒนา) จากยาชื่อสามัญ https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics https://codereview.stackexchange.com/q/60695 คำถามของฉันมีสองส่วน: จะมีประโยชน์ใด ๆ ในการย้ายไปยาสามัญเช่นนี้? (ประสิทธิภาพอ่านง่าย) การละเมิดทั่วไปคืออะไร และใช้งานทั่วไปทุกครั้งที่มีพารามิเตอร์ประเภทเป็นการละเมิด ?