मैं एक एम्बेडेड डिवाइस के लिए एक राज्य पैटर्न के साथ कोडिंग कर रहा हूं। मेरे पास एक आधार / सार वर्ग है जिसे राज्य कहा जाता है और फिर प्रत्येक असतत (ठोस) राज्य वर्ग सार राज्य वर्ग को लागू करता है।
राज्य कक्षा में मेरे पास कई सार विधियां हैं। यदि मैं असतत (ठोस) वर्ग में सार विधियों को लागू नहीं करता हूं, तो विज़ुअल स्टूडियो इस तरह से कुछ त्रुटि देगा:
... त्रुटि 1 'myConcreteState' विरासत में मिला अमूर्त सदस्य 'myAbstractState' लागू नहीं करता है
अब: मैं StateName नामक प्रत्येक राज्य के लिए एक स्ट्रिंग संपत्ति बनाने की कोशिश कर रहा हूँ। जब भी मैं एक नया ठोस वर्ग बनाता हूं, मुझे StateName को परिभाषित करने की आवश्यकता होती है। मैं चाहता हूँ कि अगर मैं इसका इस्तेमाल नहीं करता तो VS एक त्रुटि फेंक सकता है। क्या ऐसा करने के लिए एक सरल तरीका है?
मैंने इसे सार / आधार वर्ग में आज़माया है:
public abstract string StateName { get; set; }
लेकिन मुझे प्रत्येक राज्य में गेट और सेट के तरीकों को लागू करने की आवश्यकता नहीं है।
संशोधित प्रश्न: एक आदर्श स्थिति में, प्रत्येक राज्य वर्ग को StateName परिभाषित करने और सार आधार वर्ग से विरासत में प्राप्त करने की आवश्यकता होगी।
StateName = "MyState1"; //or whatever the state's name is
यदि वह कथन गायब है, तो विज़ुअल स्टूडियो ऊपर वर्णित के अनुसार एक त्रुटि उत्पन्न करेगा। क्या यह संभव है और यदि ऐसा हो तो कैसे?