ক্লাসগুলিকে কার্যকরভাবে মোকাবেলা করতে, কোভেরিয়েন্স এবং কনট্রা ভ্যারিয়েন্সের ধারণাটি ব্যবহার করুন।
আমাদের ক্লাস হিসাবে নিম্নলিখিত বিবেচনা করা যাক. একটি হল ক্লাস টু এর জন্য একটি বেস ক্লাস, যেখানে দুটি হল তিনটির জন্য একটি বেস ক্লাস৷
class One { } class Two: One { } class Three : Two { }
একটি বেস ক্লাস একটি উদ্ভূত শ্রেণী ধরে রাখতে পারে, কিন্তু বিপরীত সম্ভব নয়। Covariance এর মাধ্যমে, আপনি একটি প্রাপ্ত টাইপ পাস করতে পারেন যেখানে একটি বেস টাইপ প্রত্যাশিত। C# এ অ্যারে, ইন্টারফেস, ডেলিগেট ইত্যাদিতে কো-ভ্যারিয়েন্স ব্যবহার করা যেতে পারে।
কনট্রা ভ্যারিয়েন্স প্যারামিটারের জন্য। একটি বেস ক্লাসের প্যারামিটার সহ একটি পদ্ধতি একটি প্রতিনিধিকে বরাদ্দ করার অনুমতি দেওয়া হয় যা কনট্রাভারিয়েন্স সহ একটি প্রাপ্ত ক্লাসের প্যারামিটার আশা করে৷