Bueno, ese código de ejemplo, no tiene sentido, pero ¿por qué no simplemente usar una interfaz común? Por ejemplo, todos (creo que todos al menos) de los tipos de escritura de texto en el espacio de nombres hereda System.IO
de la clase abstracta TextWriter
, así que ...
Por ejemplo:
public class Logger
{
public Logger(TextWriter writer)
{
_writer = writer;
}
private TextWriter _writer;
public void Write(string text)
{
_writer.Write(text);
}
}
Ahora, se trata de una ¿Es buena idea hacer público al escritor y confiar en los usuarios de su código para asegurarse de que siempre sea válido? Probablemente no, pero eso es más una consideración de diseño. Además, tu setter de estilo java es A) atípico para C# que tiene un buen soporte sintáctico para las propiedades, y B) inútil ya que el campo de respaldo es público de todos modos.
¿Qué estás tratando de lograr? no en el código sino como una idea abstracta? –
Estoy tratando de almacenar un Tipo en cualquier tipo de variable, pero un Tipo en sí mismo no es una declaración, por lo que no funciona ... – Jwosty
¿No puedes usar una instancia de algún tipo, en lugar de ' Tipo'? Tal vez algo así como 'TextWriter'? – svick