সি # এর সাধারণ নির্দেশিকা হ'ল সর্বদা সর্বজনীন ক্ষেত্রের উপরে একটি সম্পত্তি ব্যবহার করা। এটি উপলব্ধি করে- একটি ক্ষেত্র উন্মোচন করে আপনি প্রচুর বাস্তবায়ন বিশদটি প্রকাশ করছেন। একটি সম্পত্তি সহ, আপনি সেই বিশদটি আবদ্ধ করেন যাতে এটি গ্রাসকারী কোড থেকে গোপন থাকে এবং প্রয়োগের পরিবর্তনগুলি ইন্টারফেস পরিবর্তনগুলি থেকে ডিকপল হয়।
যাইহোক, আমি ভাবছি readonly
কীওয়ার্ডের সাথে ডিল করার সময় এই নিয়মে কখনও কখনও বৈধ ব্যতিক্রম হয় কিনা । এই কীওয়ার্ডটিকে সর্বজনীন ক্ষেত্রে প্রয়োগ করে আপনি একটি অতিরিক্ত গ্যারান্টি দেন: অপরিবর্তনীয়তা। এটি কেবলমাত্র বাস্তবায়নের বিশদ নয়, অপরিবর্তনীয়তা এমন একটি জিনিস যা গ্রাহক আগ্রহী হতে পারে a readonly
ক্ষেত্রটি ব্যবহার এটি পাবলিক চুক্তির অংশ করে তোলে এবং এমন কিছু যা জনসাধারণের ইন্টারফেসে পরিবর্তন না করে ভবিষ্যতের পরিবর্তন বা উত্তরাধিকার দ্বারা ভাঙা যায় না। এটি এমন কিছু যা কোনও সম্পত্তি প্রস্তাব দিতে পারে না।
সুতরাং স্থায়ীত্বের নিশ্চয়তা readonly
কিছু ক্ষেত্রে কোনও সম্পত্তির উপর দিয়ে ক্ষেত্রটি বেছে নেওয়ার বৈধ কারণ ?
(স্পষ্টতার জন্য, আমি অবশ্যই বলছি না যে আপনি সবসময় এই পছন্দটি করা উচিত কারণ এই মুহূর্তে ক্ষেত্রটি অপরিবর্তনীয় বলে মনে হয়, কেবল যখন এটি শ্রেণীর নকশার অংশ হিসাবে বোধ করে এবং এটির চুক্তিতে অপরিবর্তনীয়তা অন্তর্ভুক্ত করার উদ্দেশ্যে ব্যবহার করা হয়)। আমি বেশিরভাগ ক্ষেত্রেই এটির পক্ষে যুক্তিযুক্ত হওয়া বা না হওয়া সুনির্দিষ্ট ক্ষেত্রে, যেমন আপনার যখন সদস্যের প্রয়োজন হয় interface
বা অলস-লোডিং করতে চান , তার চেয়ে বেশি যুক্তিযুক্ত উত্সগুলিতে আগ্রহী )