রেফারেন্স প্রকার এবং মান ধরণের মধ্যে পার্থক্যটি মূলত ভাষার নকশায় পারফরম্যান্স ট্রেড অফ। রেফারেন্সের ধরণগুলির নির্মাণ ও ধ্বংস এবং আবর্জনা সংগ্রহের উপর কিছু ওভারহেড রয়েছে, কারণ সেগুলি গাদা হয়ে। অন্যদিকে মানের ধরণগুলিতে মেথড কলগুলিতে ওভারহেড থাকে (যদি ডেটার আকার পয়েন্টারের চেয়ে বড় হয়), কারণ কেবলমাত্র পয়েন্টারের চেয়ে পুরো অবজেক্টটি অনুলিপি করা হয়। যেহেতু স্ট্রিংগুলি পয়েন্টারের আকারের তুলনায় অনেক বড় (এবং সাধারণত) হতে পারে, সেগুলি রেফারেন্স টাইপ হিসাবে ডিজাইন করা হয়েছে। সার্ভি ইঙ্গিত হিসাবে, একটি মান ধরণের আকার অবশ্যই সংকলন সময় জানা উচিত, যা সবসময় স্ট্রিং ক্ষেত্রে হয় না।
পরিবর্তনের প্রশ্নটি পৃথক ইস্যু। উভয় রেফারেন্স প্রকার এবং মান উভয়ই পরিবর্তনযোগ্য বা পরিবর্তনযোগ্য হতে পারে। মানের ধরণগুলি সাধারণত অপরিবর্তনীয়, যেহেতু পরিবর্তনশীল মান ধরণের জন্য শব্দার্থবিজ্ঞানগুলি বিভ্রান্তিকর হতে পারে।
রেফারেন্সের ধরণগুলি সাধারণত পরিবর্তনযোগ্য, তবে তা বোঝা যায় তবে তা অপরিবর্তনীয় হিসাবে ডিজাইন করা যেতে পারে। স্ট্রিংগুলি অপরিবর্তনীয় হিসাবে সংজ্ঞায়িত করা হয় কারণ এটি নির্দিষ্ট অপ্টিমাইজেশনকে সম্ভব করে তোলে। উদাহরণস্বরূপ, একই স্ট্রিংটি যদি একই প্রোগ্রামে একাধিকবার ঘটে (যা বেশ সাধারণ) তবে সংকলক একই বস্তুকে পুনরায় ব্যবহার করতে পারে।
তাহলে পাঠ্য দ্বারা স্ট্রিংগুলির তুলনা করার জন্য কেন "==" ওভারলোড হয়? কারণ এটি সবচেয়ে কার্যকর শব্দার্থবিজ্ঞান। যদি পাঠ্য অনুসারে দুটি স্ট্রিং সমান হয়, তবে এটি অপটিমাইজেশনের কারণে একই বস্তুর রেফারেন্স হতে পারে বা নাও হতে পারে। সুতরাং তুলনা করার রেফারেন্সগুলি বেশ অযথা, যখন পাঠ্যের তুলনা করা প্রায়শই আপনি চান what
আরও সাধারণভাবে কথা বললে, স্ট্রিংসের কাছে ভ্যালু সিম্যানটিকস বলা হয় । এটি মান ধরণের চেয়ে আরও সাধারণ ধারণা, যা একটি সি # নির্দিষ্ট বাস্তবায়ন বিশদ। মান প্রকারের মান শব্দার্থক থাকে, তবে রেফারেন্স ধরণের মান ভঙ্গি থাকতে পারে। যখন কোনও ধরণের মান শব্দার্থক থাকে, তবে অন্তর্নিহিত বাস্তবায়নটি কোনও রেফারেন্স টাইপ বা মানের ধরণ কিনা তা আপনি সত্যিই বলতে পারবেন না, তাই আপনি এটিকে বাস্তবায়নের বিশদ বিবেচনা করতে পারেন।
is
পরীক্ষাগুলি বাদ রেখে), উত্তর সম্ভবত "historicalতিহাসিক কারণে" is অনুলিপিযোগ্য বস্তুগুলি শারীরিকভাবে অনুলিপি করার প্রয়োজন নেই বলে অনুলিপি করার কার্যকারিতা কারণ হতে পারে না। এখন ব্রেকিং কোড ব্যতীত পরিবর্তন করা অসম্ভব যা প্রকৃতপক্ষেis
চেক (বা অনুরূপ সীমাবদ্ধতা) ব্যবহার করে।