Retornar um dos dois possíveis objetos de diferentes tipos compartilhando um método
Eu tenho 2 classes:
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);
}
}
E
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);
}
}
Eu quero escrever um método, que leva um inteiro (1 significadoArticles
deve ser devolvido, 2 significandoQuestionnaire
) e um nome.
Este método deve retornar uma instância de uma dessas duas classes:
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;
}
}
Qual tipo de retorno devo usar, para poder ligarOutput()
no resultado?