นี่คือคำถามจากมุมมองภายในของคอมไพเลอร์
ฉันสนใจ generics ไม่ใช่แม่แบบ (C ++) ดังนั้นฉันจึงทำเครื่องหมายคำถามด้วย C # ไม่ใช่ Java เพราะ AFAIK ข้อมูลทั่วไปในทั้งสองภาษานั้นแตกต่างกันในการนำไปใช้งาน
เมื่อฉันดูภาษาที่ไม่มี generics มันค่อนข้างตรงไปตรงมาคุณสามารถตรวจสอบคำจำกัดความของคลาสเพิ่มลงในลำดับชั้นและนั่นคือมัน
แต่จะทำอย่างไรกับชั้นเรียนทั่วไปและที่สำคัญกว่านั้นจัดการกับการอ้างอิงได้อย่างไร วิธีตรวจสอบให้แน่ใจว่าฟิลด์คงที่นั้นเป็นเอกพจน์ต่ออินสแตนซ์ (เช่นแต่ละครั้งที่พารามิเตอร์ทั่วไปได้รับการแก้ไข)
สมมติว่าฉันเห็นสาย:
var x = new Foo<Bar>();
ฉันจะเพิ่มFoo_Bar
คลาสใหม่ให้กับลำดับชั้นหรือไม่
อัปเดต:จนถึงตอนนี้ฉันพบเพียง 2 โพสต์ที่เกี่ยวข้อง แต่ถึงแม้ว่าพวกเขาจะไม่ได้ลงรายละเอียดมากในแง่ "วิธีการทำด้วยตัวเอง":