यह समस्या मुझे बगिंग चालू/बंद कर दी गई है और मैंने अब 4 रैपर लिखे हैं। मुझे यकीन है कि मैं इसे गलत कर रहा हूं और यह समझने की जरूरत है कि मेरी समझ कहां से बंद हो रही है।सी # आधार विरासत
मान लें कि मैं धातु के सलाखों का प्रतिनिधित्व करने के लिए आयताकार वर्ग का उपयोग कर रहा हूं। (यह जानवरों के बाद बेहतर काम करता है)
तो बेस क्लास को "बार" कहा जाता है।
private class Bar
{
internal Rectangle Area;
}
तो। अब हम एक आयत बनाते हैं, 300 इकाइयों को 10 इकाइयों द्वारा कहते हैं।
private Bar CreateBar()
{
Bar1 = new Bar1();
Bar1.Area = new Rectangle(new Point(0,0), new Size(300,10));
return Bar1;
}
शानदार, इसलिए हमारे पास बेस बार है।
अब मान लें कि हम इस बार को सामग्री बनाना चाहते हैं - स्टील कहें। इसलिए। । ।
private class SteelBar : Bar
{
string Material;
}
तो अगर मैंने ऐसा किया। । ।
private SteelBar CreateSteelBar()
{
SteelBar SteelB = new SteelB();
Bar B = CreateBar();
SteelB = B;
SteelB.Material = "Steel";
return SteelB;
}
मैं क्या इस से मिलता है अगर मैं CreateSteelBar फोन से, यह एक steelbar कि CreateBar कॉल बनाता है। तो मैं 300 से 10 आयत के साथ एक स्टील बार के साथ समाप्त होता हूं, और सामग्री के लिए एक खाली या खाली स्ट्रिंग। फिर मैंने सामग्री को स्टील पर सेट किया।
जब मैं अपने कार्यक्रम में कुछ ऐसा करने की कोशिश करता हूं, तो यह कहता रहता है कि मैं निचले स्तर से उच्च श्रेणी के वर्ग को स्पष्ट रूप से नहीं बना सकता। मुझे लगता था कि यही कारण है कि विरासत उन जानवरों के उदाहरणों से प्राप्त सभी विरासतों पर विचार कर रही है, लेकिन मुझे उम्मीद है कि कोई मुझे साफ़ कर सकता है।
इसके अलावा, मुझे यकीन है कि मैं SteelBar = CreateBar();
पर कॉल कर सकता हूं लेकिन मैंने इसे लंबा सफर तय किया।
यह मुझे स्पष्ट नहीं है कि आप रचनाकारों का उपयोग क्यों नहीं कर रहे हैं। इससे आपकी समस्या काफी सरल हो जाएगी। –
आप 'CreateBar() ' –
में मान वापस नहीं करते हैं यह इस मामले में होगा - मेरे सिस्टम में मैं उस चीज़ के लिए एक एक्सटेंशन बना रहा हूं जिसमें इसके अंदर 1 से 500 आइटम हैं। – Charles