Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแปรปรวนร่วมและความแปรปรวนใน C #


หากต้องการจัดการกับชั้นเรียนอย่างมีประสิทธิภาพ ให้ใช้แนวคิดเรื่องความแปรปรวนร่วมและความแปรปรวนที่ตรงกันข้าม

ให้เราพิจารณาสิ่งต่อไปนี้เป็นชั้นเรียนของเรา หนึ่งคือคลาสพื้นฐานสำหรับคลาสสอง ในขณะที่ทูคือคลาสพื้นฐานสำหรับสามคน

class One { 
}
class Two: One {
}
class Three : Two { 
}

คลาสฐานสามารถเก็บคลาสที่ได้รับ แต่สิ่งที่ตรงกันข้ามเป็นไปไม่ได้ ด้วยความแปรปรวนร่วม คุณสามารถส่งผ่านประเภทที่ได้รับซึ่งคาดว่าจะเป็นประเภทพื้นฐาน ความแปรปรวนร่วมสามารถใช้ได้กับอาร์เรย์ อินเทอร์เฟซ ผู้รับมอบสิทธิ์ ฯลฯ ใน C#

ความแปรปรวนของคอนทรามีไว้สำหรับพารามิเตอร์ อนุญาตให้กำหนดเมธอดที่มีพารามิเตอร์ของคลาสฐานให้กับผู้รับมอบสิทธิ์ที่คาดหวังพารามิเตอร์ของคลาสที่ได้รับด้วย Contravariance