শিরোনামটি বিভ্রান্তিমূলক, সুতরাং দয়া করে পুরো প্রশ্নটি পড়ুন :-) ।
দ্বারা "যৌগ নিয়োগ অপারেটর" আমি মনের মধ্যে এই মত একটি কনস্ট্রাক্ট আছে op=
উদাহরণস্বরূপ, +=
। খাঁটি এসাইনমেন্ট অপারেটর ( =
) আমার প্রশ্নের সাথে সম্পর্কিত নয়।
"কেন" দ্বারা আমি কোনও মতামত বোঝাতে চাই না, তবে কিছু ডিজাইনার বা তাদের সহকর্মী ইত্যাদি যখন যুক্তিটি প্রকাশ করেন (অর্থাত্ নকশা পছন্দসই উত্স ) তখন সম্পদ (বই, নিবন্ধ, ইত্যাদি) বোঝায় না ।
সি ++ এবং সি # তে পাওয়া অসম্পূর্ণতা দেখে আমি বিস্মিত হই ( হ্যাঁ, আমি জানি সি # সি ++ 2.0 নয় ) - সি ++ এ আপনি অপারেটরটি ওভারলোড করবেন +=
এবং তারপরে প্রায় স্বয়ংক্রিয়ভাবে +
পূর্বনির্ধারিত অপারেটরের উপর নির্ভর করে উপযুক্ত অপারেটর লিখবেন । সি # এ এটি বিপরীত - আপনি ওভারলোড +
এবং আপনার +=
জন্য সংশ্লেষিত।
যদি আমার ভুল না হয় তবে পরবর্তী পদ্ধতির প্রকৃত ক্ষেত্রে অপ্টিমাইজেশনের সুযোগ হারাবে +=
, কারণ নতুন অবজেক্ট তৈরি করতে হবে। সুতরাং এই ধরনের পদ্ধতির কিছু বড় সুবিধা থাকতে হবে, তবে এমএসডিএন এটি সম্পর্কে বলতে খুব লজ্জা পাচ্ছে।
এবং আমি ভাবছি যে সুবিধাটি কী - তাই যদি আপনি কোনও সি # বই, টেক-টক ভিডিও, ব্লগ এন্ট্রিতে ব্যাখ্যাটি দেখেন তবে আমি রেফারেন্সের জন্য কৃতজ্ঞ হব।
সবচেয়ে কাছের জিনিসটি আমি পেয়েছি এরিক লিপার্ট ব্লগের একটি মন্তব্য কেন ওভারলোডেড অপারেটররা সর্বদা সি # তে স্থির থাকে? টম ব্রাউন দ্বারা। যদি স্থির ওভারলোডিং প্রথমে সিদ্ধান্ত নেওয়া হয় তবে এটি কেবল আদেশ দেয় যে স্ট্রাক্টগুলির জন্য কোন অপারেটরগুলি ওভারলোড করা যায়। এটি আরও নির্দেশ করে যা ক্লাসগুলির জন্য ওভারলোড করা যায়।
*=
কোনও রেফারেন্সের প্রকারটিকে রূপান্তরিত করাকে শব্দার্থগতভাবে ভুল বলে মনে করব।
+=
প্রথমে অযৌক্তিক বলে মনে হয়; আপনি কেন এটির অংশগুলির চেয়ে সম্মিলিত অপারেশনটি ওভারলোড করবেন?