Devuelve uno de los dos posibles objetos de diferentes tipos que comparten un método.
Tengo 2 clases:
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);
}
}
Y
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);
}
}
Quiero escribir un método, que toma un entero (1 significadoArticles
debe ser devuelto, 2 significadosQuestionnaire
) y un nombre.
Este método debe devolver una instancia de una de esas dos clases:
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;
}
}
¿Qué tipo de devolución debo usar, para poder llamar?Output()
en el resultado?