সদস্য প্রসঙ্গে নিরর্থক হলে এটি করা ভাল ফর্ম। উদাহরণস্বরূপ, আপনি যদি এমন একটি পঠন সংগ্রহ সংগ্রহ তৈরি করেন যা IList<T>
অভ্যন্তরীণ কোনও বিষয়কে অর্পণ করে কার্যকর করে _wrapped
তবে আপনার মতো কিছু থাকতে পারে:
public T this[int index]
{
get
{
return _wrapped[index];
}
}
T IList<T>.this[int index]
{
get
{
return this[index];
}
set
{
throw new NotSupportedException("Collection is read-only.");
}
}
public int Count
{
get { return _wrapped.Count; }
}
bool ICollection<T>.IsReadOnly
{
get
{
return true;
}
}
এখানে আমরা চারটি পৃথক কেস পেয়েছি।
public T this[int index]
ইন্টারফেসের চেয়ে আমাদের ক্লাস দ্বারা সংজ্ঞায়িত করা হয়েছে, এবং এটি অবশ্যই স্পষ্ট বাস্তবায়ন নয়, তবে নোট করুন যে এটি T this[int index]
ইন্টারফেসে সংজ্ঞায়িত পঠন-পাঠ্যের সাথে একই রকম হয় তবে কেবল পঠনযোগ্য।
T IList<T>.this[int index]
সুস্পষ্ট কারণ এর এক অংশ (প্রাপ্তকারী) উপরের সম্পত্তির সাথে পুরোপুরি মিলেছে এবং অন্য অংশটি সর্বদা একটি ব্যতিক্রম ছুঁড়ে ফেলবে। ইন্টারফেসের মাধ্যমে এই শ্রেণীর উদাহরণটি অ্যাক্সেস করার জন্য কারও পক্ষে অত্যাবশ্যক, তবে ক্লাসের ধরণের পরিবর্তকের মাধ্যমে এটি ব্যবহার করা অর্থহীন।
একইভাবে কারণ bool ICollection<T>.IsReadOnly
সর্বদা সত্য ফিরে আসতে চলেছে এটি শ্রেণীর ধরণের বিরুদ্ধে লেখা কোডের পক্ষে সম্পূর্ণ অর্থহীন, তবে এটি ইন্টারফেসের ধরণের মাধ্যমে এটি ব্যবহার করা অত্যাবশ্যক হতে পারে, এবং তাই আমরা এটিকে স্পষ্টভাবে বাস্তবায়ন করি।
বিপরীতভাবে, public int Count
স্পষ্টভাবে প্রয়োগ করা হয় না কারণ এটি সম্ভবত নিজস্ব ধরণের মাধ্যমে উদাহরণ ব্যবহার করে কারও পক্ষে ব্যবহারযোগ্য হতে পারে।
তবে আপনার "খুব বিরল ব্যবহৃত" ক্ষেত্রে, আমি স্পষ্টত বাস্তবায়ন না করার দিকে অবশ্যই দৃ indeed়তার সাথে ঝুঁকতে চাই।
যে ক্ষেত্রে আমি ক্লাসের ধরণের ভেরিয়েবলের মাধ্যমে পদ্ধতিটি কল করে একটি স্পষ্ট বাস্তবায়ন ব্যবহার করার পরামর্শ দিই তা হয় ত্রুটি (সূচকযুক্ত সেটারটি ব্যবহারের চেষ্টা) বা অর্থহীন (কোনও মান যা সর্বদা একরকম হবে তা পরীক্ষা করা) হতে পারে তাই লুকিয়ে থাকে তাদের আপনি বগি বা সাব-অনুকূল কোড থেকে ব্যবহারকারীকে রক্ষা করছেন। আপনার মনে হয় এমন কোডের তুলনায় এটি উল্লেখযোগ্যভাবে পৃথক, সম্ভবত খুব কমই ব্যবহৃত হতে পারে । এজন্য আমি EditorBrowsable
সদস্যকে ইন্টেলিজেন্স থেকে আড়াল করার জন্য বৈশিষ্ট্যটি ব্যবহার করার বিষয়টি বিবেচনা করতে পারি , যদিও আমি ক্লান্তি বোধ করি না; মানুষের মস্তিষ্কের কী ইতিমধ্যে আগ্রহী না তা ফিল্টার করার জন্য ইতিমধ্যে তাদের নিজস্ব সফ্টওয়্যার রয়েছে।