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?

Respuestas a la pregunta(6)

Su respuesta a la pregunta