30 মে 2013 এ এই প্রশ্নটি আমার ব্লগের বিষয় ছিল । মহান প্রশ্নের জন্য ধন্যবাদ!
আপনি একটি খালি ড্রাইভওয়েতে তাকাচ্ছেন।
কেউ আপনাকে জিজ্ঞাসা করেছে "আপনার ড্রাইভওয়ে একটি হোন্ডা সিভিক ধরে রাখতে পারে?"
হ্যাঁ. বনভ.
কেউ আপনাকে দ্বিতীয় ড্রাইভওয়েতে নির্দেশ করে। এটিও ফাঁকা। তারা জিজ্ঞাসা করে "আমার ড্রাইভওয়ের বর্তমান সামগ্রীগুলি কি আপনার ড্রাইভওয়েতে ফিট করতে পারে?"
হ্যাঁ, অবশ্যই দুটি ড্রাইভওয়ে খালি! সুতরাং স্পষ্টতই একটির বিষয়বস্তু অন্যটিতে মাপসই করা যায়, কারণ কোনও জায়গাতেই প্রথম স্থানে নেই।
কেউ আপনাকে জিজ্ঞাসা করেছে "আপনার ড্রাইভওয়েতে কি হন্ডা সিভিক রয়েছে?"
না, তা হয় না।
আপনি ভাবছেন যে isঅপারেটর দ্বিতীয় প্রশ্নের উত্তর দেয়: এই মানটি দেওয়া হলে, এটি কি এই ধরণের কোনও ভেরিয়েবলের সাথে খাপ খায়? একটি নাল রেফারেন্স এই ধরণের একটি পরিবর্তনশীল মধ্যে ফিট করে? হ্যাঁ এটা করে.
isঅপারেটর যে প্রশ্নের উত্তর দেয় তা নয়। isঅপারেটর যে প্রশ্নের উত্তর দেয় তা হ'ল তৃতীয় প্রশ্ন। y is Xজিজ্ঞাসা করা হয় না " হয় yধরনের ভেরিয়েবলের একটি আইনি মান X? " এটা বলছেন " Is yপ্রকারের একটি বস্তু একটি বৈধ রেফারেন্স X? " যেহেতু একটি নাল রেফারেন্স একটি বৈধ রেফারেন্স নয় কোন বস্তুর কোনো প্রকার, উত্তর "কোন "। সেই ড্রাইভওয়ে খালি; এতে কোনও হন্ডা সিভিক নেই।
এটি দেখার আরেকটি উপায় হ'ল y is Xপ্রশ্নের উত্তরটি "যদি আমি বললাম y as X, আমি কি নন-নাল ফলাফল পাব? যদি y নাল হয়, স্পষ্টভাবে উত্তরটি না!
আপনার প্রশ্নের দিকে আরও গভীরভাবে দেখার জন্য:
একটি প্রত্যাশা করে যে নাল মানটি কোনও রেফারেন্সের (বা nullable) প্রকারের সাথে সম্পর্কিত
একটি স্পষ্টতই ধরে নেওয়া হবে যে একটি টাইপ মানগুলির একটি সেট , এবং এক্স টাইপের ভেরিয়েবলের সাথে একটি মান y এর অ্যাসাইনমেন্টের সামঞ্জস্যতা y সেট x এর সদস্য কিনা তা যাচাই করার চেয়ে আরও কিছু বা কম নয় ।
যদিও এটি প্রকারগুলি দেখার জন্য অত্যন্ত সাধারণ উপায়, এটি কেবল প্রকারের দিকে তাকানোর একমাত্র উপায় নয় , এবং এটি সি # ধরনগুলিকে যেভাবে দেখায় তা নয়। নাল উল্লেখগুলি সি # তে কোনও প্রকারের সদস্য নয়; নিয়োগ সামঞ্জস্য হয় না নিছক একটি সেট পরীক্ষণ দেখতে যদি এটি একটি মান রয়েছে। কেবলমাত্র নাল রেফারেন্সটি রেফারেন্স টাইপের এক্সের ভেরিয়েবলের সাথে সামঞ্জস্যপূর্ণ অ্যাসাইনমেন্টের অর্থ এই নয় যে নালটি টাইপ এক্স এর একটি সদস্য relation ওভারল্যাপ হয় তবে সেগুলি সিএলআর-তে অভিন্ন নয়।
টাইপ থিওরি সম্পর্কে যদি আপনার আগ্রহ আগ্রহী হয়, তবে বিষয়টিতে আমার সাম্প্রতিক নিবন্ধগুলি দেখুন:
আপনি "টাইপ" বলতে এই জিনিসটি কি? প্রথম অংশ
আপনি "টাইপ" বলতে এই জিনিসটি কি? অংশ দুই