2016-04-30 11 views
5

मैं एक मिनी मार्केट प्रोग्राम को कार्यान्वित करना चाहता हूं। वहां एक अमूर्त वर्ग (माल) और दो व्युत्पन्न कक्षाएं हैं (शुष्क और ठंडे सामान)। उसके बाद कुछ आइटम कैसे जोड़ें? (अंडे, दूध, चावल ... आदि)अमूर्त वर्ग सी # को तुरंत कैसे चालू करें?

+1

बस उन्हें 'ड्राईगूड्स' या 'कोल्डगूड्स' से प्राप्त करें? क्या आप अपने वर्गों को दिखाने के लिए प्रश्न संपादित कर सकते हैं और आप दूसरों (अंडे, दूध इत्यादि) का उपयोग कैसे करना चाहते हैं – Rhumborl

+0

मेरे पास एक और वर्ग (रेफ्रिजरेटर), (अलमारियों) और (कार्ट) है I आइटम का उपयोग करना चाहते हैं उन्हें अलमारियों या रेफ्रिजरेटर में रखने के लिए। और आइटम दिखाने के लिए एक विनफॉर्म बनाएं, उन्हें गाड़ी और चेकआउट में रखें, जैसे ग्राहकों – Saja

उत्तर

13

आप एक अमूर्त वर्ग को तत्काल नहीं कर सकते हैं। आधार वर्ग के रूप में कार्य करना एकमात्र उद्देश्य है। आपका अंडे, दूध, चावल वर्ग माल से निकाले जाते हैं चाहिए और कार्यक्षमता को लागू, जिन्हें आप नीचे:

public abstract class Goods 
{ 

} 

public class DryGoods : Goods 
{ 

} 

public class ColdGoods : Goods 
{ 

} 

फिर आप सूखी या शीत माल से इनहेरिट अधिक आदिम आइटम हो सकता है।

public class Egg : DryGoods 
{ 

} 

public class Milk : ColdGoods 
{ 

} 

आप Milk या Egg के रूप में हल्के वजन वर्गों (या हस्तांतरणीय वस्तुओं) की जरूरत नहीं है वैकल्पिक रूप से अगर आप सिर्फ सीधे व्युत्पन्न DryGoods या ColdGoods प्रकार इस्तेमाल कर सकते हैं और एक GoodsType संपत्ति है:

DryGoods egg = new DryGoods(); 
egg.GoodsType = DryGoods.Egg; 

ColdGoods milk = new ColdGoods(); 
milk.GoodsType = ColdGoods.Milk; 
+4

'ड्राईगूड्स' और 'कोल्डगूड्स' शायद कोड के लिए नहीं, बल्कि व्यापार तर्क के लिए भी अमूर्त होना चाहिए। –

+0

यदि आप थे, तो मैं नई इकाई बनाने के बजाय ड्राईगूड्स और कोल्डगूड्स का कुछ उदाहरण बना देता हूं। –

+0

यदि मैं व्युत्पन्न कक्षाओं से वस्तुओं को बना देता हूं, तो (गुड्स टाइप) का उपयोग क्या है? – Saja

0

आपको सबक्लास का ऑब्जेक्ट बनाना है और सबक्लास के उस ऑब्जेक्ट का उपयोग करना है, आप मान सेट कर सकते हैं। आप एक अमूर्त वर्ग को तत्काल नहीं कर सकते हैं।

public abstract class Good { } 

वहाँ और आप अपने नाम श्रेणियां होती हैं: आप केवल एक आधार वर्ग के रूप में उपयोग कर सकते हैं ..

+0

धन्यवाद, मुझे वस्तुओं को कहां बनाना चाहिए? WinForm कार्यान्वयन में ? .cs फ़ाइल में – Saja

+0

है। आपको उप-वर्ग में एक वस्तु बनाना चाहिए। –

4

देखो, तो आप एक सार आधार वर्ग है

public class Egg : Good { } 

public class Milk : Good { } 

public class Rice : Good { } 

अब आप जोड़ सकते हैं आधार वर्ग के लिए गुण और तरीके अच्छा।

अब तुम भी नाम कक्षाएं अंडा, दूध के गुण और तरीके, और चावल :) जोड़ सकते हैं

अब आप भी, कई अंडे, दूध और चावल हो सकता है अगर आप का नाम बदलने GoodsGood रहे हैं:

var allGoods = new List<Good>(); 

var eggs = new Egg[16]; 
allGoods.Add(eggs); 

var milk = new Milk[64]; 
allGoods.Add(milk); 

var rice = new Rice[64]; 
allGoods.Add(rice); 
संबंधित मुद्दे