সি # তে, out
কীওয়ার্ডটি দুটি ভিন্ন উপায়ে ব্যবহার করা যেতে পারে।
প্যারামিটার সংশোধক হিসাবে একটি যুক্তি রেফারেন্স দ্বারা পাস করা হয়
class OutExample { static void Method(out int i) { i = 44; } static void Main() { int value; Method(out value); // value is now 44 } }
Covariance নির্দিষ্ট করতে একটি টাইপ প্যারামিটার সংশোধক হিসাবে ।
// Covariant interface. interface ICovariant<out R> { } // Extending covariant interface. interface IExtCovariant<out R> : ICovariant<R> { } // Implementing covariant interface. class Sample<R> : ICovariant<R> { } class Program { static void Test() { ICovariant<Object> iobj = new Sample<Object>(); ICovariant<String> istr = new Sample<String>(); // You can assign istr to iobj because // the ICovariant interface is covariant. iobj = istr; } }
আমার প্রশ্ন: কেন?
কোনও শিক্ষানবিশকে, দুজনের মধ্যে সংযোগটি স্বজ্ঞাত বলে মনে হচ্ছে না । জেনেরিকগুলির সাথে ব্যবহারের উল্লেখটি রেফারেন্স দিয়ে যাওয়ার সাথে কিছু নেই বলে মনে হয়।
আমি প্রথমে out
রেফারেন্সের মাধ্যমে তর্কগুলি পাস করার ক্ষেত্রে কী ছিল তা শিখেছি এবং এটি জেনেরিকের সাথে সংখ্যালঘু সংজ্ঞা নির্ধারণের ব্যবহার সম্পর্কে আমার বোধকে বাধা দিয়েছে।
এই ব্যবহারগুলির মধ্যে কি আমি মিস করছি তার মধ্যে কোনও সংযোগ রয়েছে?
System.Func<in T, out TResult>
প্রতিনিধিদের মধ্যে covariance এবং বৈপরীত্য ব্যবহার তাকান তাহলে সংযোগটি কিছুটা বোধগম্য ।