Tengo un objeto con un método personalizado WriteLine(string)
. Algo como esto:Cómo imitar string.Format() en mi propio método?
public void WriteLine(string text)
{
this.StringList.Add(text);
}
¿Cuál es la forma más fácil de duplicar la funcionalidad de string.Format()
con este método? Por ejemplo: Lo que actualmente menudo encuentro haciendo es la siguiente:
myObj.WriteLine(string.Format("Hello, {0}", name));
Si crea una nueva aplicación de consola de su versión de un método WriteLine()
hace exactamente lo que yo preferiría hacer:
Console.WriteLine("Hello, {0}", name);
Ellos elimine la necesidad de llamar al string.Format()
. ¿Es fácil hacer que tu método acepte esto de alguna manera? ¿O tendré que crear miles de sobrecargas de métodos? Algo como esto:
public void WriteLine() { ... }
public void WriteLine(string text) { ... }
public void WriteLine(string text, object arg0) { ... }
public void WriteLine(string text, object arg0, object arg1) { ... }
public void WriteLine(string text, object arg0, object arg1, object arg2)
{
this.StringList.Add(string.Format(text, arg0, arg1, arg2));
}
// etc etc etc
¿Es esa la única forma lógica de hacer esto? Cualquier sugerencia es bienvenida :)
¿Por qué no simplemente delegar a 'string.Format'? ¿De verdad quieres escribir un tokenizer? – Oded
Hay una característica de C# que no conoces que debes conocer. http://msdn.microsoft.com/en-us/library/w5zay9db(v=VS.100).aspx –
@Oded esa es mi pregunta ... no tenía conocimiento de la palabra clave 'params' y no sabía que incluso *** podría *** delegar a 'string.Format'. – Chev