एक आदेश प्रणाली का प्रतिनिधित्व निम्नलिखित वर्गों पर विचार करें: अबक्या किसी संपत्ति को ओवरराइड करना और VB.NET में व्युत्पन्न प्रकार वापस करना संभव है?
Public Class OrderBase
Public MustOverride Property OrderItem as OrderItemBase
End Class
Public Class OrderItemBase
End Class
, मान लीजिए हम आदेश वर्गों में से एक अधिक विशिष्ट समूह को इन कक्षाओं का विस्तार करने के OrderBase की कुल प्रकृति रखते हुए हैं:
Public Class WebOrder
Inherits OrderBase
Public Overrides Property OrderItem as WebOrderItem
End Property
End Class
Public Class WebOrderItem
Inherits OrderItemBase
End Class
वेबऑर्डर क्लास में ओवर्रिडन संपत्ति एक त्रुटि का कारण बताएगी कि रिटर्न टाइप ऑर्डरबेस में परिभाषित से भिन्न है ... हालांकि, रिटर्न टाइप ऑर्डरबेस में परिभाषित प्रकार का उप-वर्ग है। वीबी क्यों इसकी अनुमति नहीं देगा?
अपने ऑर्डर आइटम को सरणी के रूप में परिभाषित करना एक बुरा विचार है। एक सूची या Ienumerable का प्रयोग करें। –
मेरे असली कोड में वे सूचियां हैं।() के साथ भ्रम के लिए खेद है। –
कारणों और चाल/कामकाज के लिए [इस सी # प्रश्न] के जवाब भी देखें (http://stackoverflow.com/questions/157119/c-sharp-can-i-override-with-derived-types)। ([सी # की विधि हस्ताक्षर "नया" वीबी.Net में "छाया" है] (http://stackoverflow.com/questions/8575418/difference-between-shadows-vb-net-and-new-c)) –