Sobreescribir bool

22/10/2008 - 17:40 por Guillermo Peralta | Informe spam
Hola que tal;

Existe algun Formato que le pueda pasar al ToString de un valor boolean para
que me visualice los datos de la siguiente manera?

Por ejemplo

void Imprime ()
{
bool TengoDinero = false;

Console.Write (TengoDinero.ToString()); //que imprima No en lugar de
False


TengoDinero = true;

Console.Write (TengoDinero.ToString()); //que imprima Sí


}


Gracias

Guillermo Peralta

Preguntas similare

Leer las respuestas

#1 Fernando A. Gómez F.
22/10/2008 - 18:25 | Informe spam
Guillermo Peralta wrote:
Hola que tal;

Existe algun Formato que le pueda pasar al ToString de un valor boolean
para que me visualice los datos de la siguiente manera?

Por ejemplo

void Imprime ()
{
bool TengoDinero = false;

Console.Write (TengoDinero.ToString()); //que imprima No en lugar de
False


TengoDinero = true;

Console.Write (TengoDinero.ToString()); //que imprima Sí


}


Gracias





Pues...

Console.Write(TengoDinero ? "Sí" : "No");

...no sería suficiente?

Saludos.
Respuesta Responder a este mensaje
#2 Alfredo Novoa
22/10/2008 - 18:28 | Informe spam
El Wed, 22 Oct 2008 13:40:27 -0200, Guillermo Peralta escribió:

Existe algun Formato que le pueda pasar al ToString de un valor boolean para
que me visualice los datos de la siguiente manera?



No se si existía, pero ahora si que existe :-)

public class BoolFormatProvider : IFormatProvider, ICustomFormatter
{
#region ICustomFormatter Members

public string Format(string format, object arg, IFormatProvider
formatProvider)
{
bool value = (bool)arg;
format = (format == null ? null : format.Trim().ToLower());

switch (format)
{
case "yn":
return value ? "Sí" : "No";
default :
if (arg is IFormattable)
return ((IFormattable)arg).ToString(format,
formatProvider);
else
return arg.ToString();
}
}

#endregion

#region IFormatProvider Members

public object GetFormat(Type formatType)
{
if (formatType == typeof(ICustomFormatter))
return this;
else
return null;
}

#endregion
}


Saludos
Respuesta Responder a este mensaje
#3 Guillermo Peralta
22/10/2008 - 19:18 | Informe spam
Gracias Alfredo, podrias pasarme un ejemplo de su uso?

Guillermo Peralta


"Alfredo Novoa" escribió en el mensaje de
noticias:chsndjixqdb9$
El Wed, 22 Oct 2008 13:40:27 -0200, Guillermo Peralta escribió:

Existe algun Formato que le pueda pasar al ToString de un valor boolean
para
que me visualice los datos de la siguiente manera?



No se si existía, pero ahora si que existe :-)

public class BoolFormatProvider : IFormatProvider, ICustomFormatter
{
#region ICustomFormatter Members

public string Format(string format, object arg, IFormatProvider
formatProvider)
{
bool value = (bool)arg;
format = (format == null ? null : format.Trim().ToLower());

switch (format)
{
case "yn":
return value ? "Sí" : "No";
default :
if (arg is IFormattable)
return ((IFormattable)arg).ToString(format,
formatProvider);
else
return arg.ToString();
}
}

#endregion

#region IFormatProvider Members

public object GetFormat(Type formatType)
{
if (formatType == typeof(ICustomFormatter))
return this;
else
return null;
}

#endregion
}


Saludos
Respuesta Responder a este mensaje
#4 Fernando A. Gómez F.
22/10/2008 - 19:32 | Informe spam
Alfredo Novoa wrote:
El Wed, 22 Oct 2008 13:40:27 -0200, Guillermo Peralta escribió:

Existe algun Formato que le pueda pasar al ToString de un valor boolean para
que me visualice los datos de la siguiente manera?



No se si existía, pero ahora si que existe :-)



[CODE]


Saludos



Estaba pensando... ¿quizás con alguna "extensión"? No me he metido mucho
a C# 3... ¿se podría?

Saludos.
Respuesta Responder a este mensaje
#5 Alfredo Novoa
22/10/2008 - 21:26 | Informe spam
El Wed, 22 Oct 2008 15:18:30 -0200, Guillermo Peralta escribió:

Gracias Alfredo, podrias pasarme un ejemplo de su uso?



No funciona por que los chapuceros de Microsoft no han implementado bien el
método:

ToString(IFormatProvider provider)

¡Han puesto "True" y "False" a capón, y no hacen ni caso al FormatProvider
del parámetro!

Manda huevos. Eso me pasa por no probar las cosas, y eso que lo copié de
por ahí y solo le cambié el Yes por el Sí O:-)

Pues lo único entonces es hacer un método de extensión como dice Fernando,
si usas C# 3.


Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida