साझा करने मैं 2 वर्गों है:लौटें विभिन्न प्रकार के दो संभावित वस्तुओं में से एक के लिए एक विधि
public class Articles
{
private string name;
public Articles(string name)
{
this.name = name;
}
public void Output()
{
Console.WriteLine("The class is: " + this.GetType());
Console.WriteLine("The name is: " + name);
}
}
और
public class Questionnaire
{
private string name;
public Questionnaire(string name)
{
this.name = name;
}
public void Output()
{
Console.WriteLine("The class is: " + this.GetType());
Console.WriteLine("The name is: " + name);
}
}
मैं एक विधि लिखना चाहते हैं, कि एक पूर्णांक लेता है (1 अर्थ Articles
वापस किया जाना चाहिए, 2 अर्थ Questionnaire
) और एक नाम।
इस विधि उन दो वर्गों में से एक का एक उदाहरण लौटाएगा:
public [What type??] Choose(int x, string name)
{
if (x == 1)
{
Articles art = new Articles(name);
return art;
}
if (x == 2)
{
Questionnaire ques = new Questionnaire(name);
return ques;
}
}
क्या वापसी प्रकार उपयोग करना चाहिए, तो मैं परिणाम पर Output()
कॉल कर सकते हैं?
यदि आपको लगता है कि दोनों प्रकारों में (कई) चीजें आम हैं तो आपको उन्हें एक ही बेस क्लास से उत्तराधिकारी होना चाहिए या कम से कम एक ही इंटरफेस को लागू करना चाहिए। –
इसे आमतौर पर [बतख टाइपिंग] कहा जाता है (http://en.wikipedia.org/wiki/Duck_typing) - निश्चित रूप से सी # के साथ संभव है (देखें ['गतिशील'] (http://msdn.microsoft.com/en-us/ पुस्तकालय/dd264741.aspx)), लेकिन उत्तर में दिखाए गए दृढ़ता से टाइप किए गए समाधानों का उपयोग करने पर विचार करें। –