में नहीं है मेरे पास एक साधारण सी # प्रश्न है (इसलिए मुझे विश्वास है)। मैं भाषा के साथ शुरुआत कर रहा हूं और मैं उन्हें लागू करने वाले इंटरफेस और कक्षाओं के बारे में एक समस्या में भाग गया। समस्याक्लास विधि जो इंटरफ़ेस
मैं इंटरफ़ेस iA
interface iA
{
bool method1
bool method2
bool method3
}
और 3 वर्गों कि इंटरफ़ेस को लागू है: वर्ग B
, C
और D
class B : iA
{
public bool method1
public bool method2
public bool method3
}
वर्ग बी एक और तरीका है कि में नहीं है था इंटरफ़ेस, मान लें method4()
और मेरे पास निम्न है:
iA element = new B();
और फिर मैं का प्रयोग करेंगे:
element.method4();
मैं कह रहा है कि मैं एक method4()
उस प्रकार iA
का पहला तर्क लेता नहीं है एक त्रुटि मिलेगा।
सवाल यह है: क्या मेरे पास इंटरफ़ेस प्रकार का ऑब्जेक्ट है और कक्षा के साथ तत्काल हो सकता है और क्या ऑब्जेक्ट कक्षा से एक विधि है, एक विधि जो इंटरफ़ेस में नहीं है?
एक समाधान जो मैं आया था इंटरफ़ेस और व्युत्पन्न कक्षाओं के बीच एक अमूर्त वर्ग का उपयोग करना था, लेकिन आईएमओ जो इंटरफ़ेस को दायरे से बाहर रखेगा। मेरे डिजाइन में मैं केवल इंटरफ़ेस और व्युत्पन्न कक्षाओं का उपयोग करना चाहता हूं।
'अगर (तत्व टाइपोफ (बी)) ((बी) तत्व)। Method4(); 'यह – wudzik
मदद कर सकता है एक नया नया उपयोगकर्ता स्पष्ट और अच्छी तरह से स्वरूपित प्रश्न पूछ रहा है। यह दुर्लभ है, बधाई और स्वागत है। :) – Otiel
अच्छा सवाल। +1 यदि आप असली परिदृश्य देते हैं, तो हम सबसे अच्छे डिजाइन अपमान पर सलाह दे सकते हैं। –