visual polimorfico parametrizado metodos metodo llamar funciones extension declara consola como clases c# console extension-methods

polimorfico - metodos en c# consola



¿Es posible escribir métodos de extensión para la consola? (2)

Mientras observaba esta pregunta y sus respuestas, pensé que sería una buena idea escribir un método de extensión para System.Console que contuviera la funcionalidad deseada.

Sin embargo, cuando lo probé, recibí este error del compilador

System.Console '': los tipos estáticos no se pueden usar como parámetros

Aquí está el código:

using System; using System.Runtime.CompilerServices; namespace ConsoleApplication1 { public static class ConsoleExtensions { [Extension] public static string TestMethod(this Console console, string testValue) { return testValue; } } }

¿Hay otra forma de crear métodos de extensión para tipos estáticos? ¿O esto simplemente no es posible?


No es posible, como se menciona en la respuesta de Matt.

Como solución alternativa, puede crear una clase estática que envuelva la consola y agregue la funcionalidad deseada.

public static class ConsoleEx { public static void WriteLineRed(String message) { var oldColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(message); Console.ForegroundColor = oldColor; } }

No es ideal, ya que tienes que agregar esa pequeña "Ex", pero fluye con el código decentemente bien, si eso es algo (ehm) consuelo:

ConsoleEx.WriteLineRed("[ERROR]")