আমি এম্বেড থাকা ডিভাইসের জন্য একটি রাষ্ট্র প্যাটার্ন সহ কোডিং করছি। আমার স্টেট নামে একটি বেস / অ্যাবস্ট্রাক্ট ক্লাস রয়েছে এবং তারপরে প্রতিটি বিযুক্ত (কংক্রিট) রাষ্ট্র বর্গ বিমূর্ত স্টেট ক্লাস প্রয়োগ করে।
রাজ্য শ্রেণিতে আমার বেশ কয়েকটি বিমূর্ত পদ্ধতি রয়েছে। আমি যদি বিযুক্ত (কংক্রিট) শ্রেণিতে বিমূর্ত পদ্ধতিগুলি প্রয়োগ না করি তবে ভিজ্যুয়াল স্টুডিও একটি ত্রুটি এই জাতীয় কিছু দেবে:
... ত্রুটি 1 'myConcreteState' উত্তরাধিকারসূত্রে বিমূর্ত বিমূর্ত সদস্য 'myAbstractState' প্রয়োগ করে না
এখন: আমি স্টেটনাম নামে প্রতিটি রাজ্যের জন্য একটি স্ট্রিং সম্পত্তি তৈরি করার চেষ্টা করছি। যখনই আমি একটি নতুন কংক্রিট শ্রেণি তৈরি করি, আমার স্টেটনামটি সংজ্ঞায়িত করতে হবে। আমি চাই যদি ভিএস এটি ব্যবহার না করে তবে একটি ত্রুটি নিক্ষেপ করবে। এটি করার কোন সহজ পথ আছে কি?
আমি এটি বিমূর্ত / বেস শ্রেণিতে চেষ্টা করেছি:
public abstract string StateName { get; set; }
তবে প্রতিটি রাজ্যে গেট অ্যান্ড সেট পদ্ধতিগুলি প্রয়োগ করার দরকার নেই।
সংশোধিত প্রশ্ন: একটি আদর্শ পরিস্থিতিতে প্রতিটি রাজ্য শ্রেণীর স্টেটনাম সংজ্ঞায়িত করা এবং বিমূর্ত বেস শ্রেণীর উত্তরাধিকার সূত্রে প্রাপ্ত হওয়া আবশ্যক।
StateName = "MyState1"; //or whatever the state's name is
যদি বিবৃতিটি অনুপস্থিত থাকে তবে ভিজ্যুয়াল স্টুডিও উপরে বর্ণিত হিসাবে ত্রুটি তৈরি করবে। এটি কি সম্ভব এবং যদি তাই হয় তবে কীভাবে?