Hay una razón que hace que sea prácticamente imposible usar fuentes que no sean monoespacios para la codificación, pero no se mencionó en otras respuestas: selecciones rectangulares .
Esta característica, a menudo no muy útil y poco conocida cuando se trabaja con texto ordinario, es esencial para los desarrolladores. Puede imaginar una multitud de escenarios: eliminar //
comentarios en varias líneas, agregar paréntesis u otros caracteres, etc. Esto es aún más valioso con el soporte avanzado de selecciones rectangulares, como en Visual Studio 2010, donde no solo puede seleccionar y eliminar texto, pero selecciónelo y reemplácelo.
Tomemos un ejemplo:
private IEnumerable<SELove> StackExchangeRocks()
{
var howILoveSEWebsites = new []
{
new SELove { SiteName = "Stack Overflow", MyReputation = 5269, MyRating = Rating.Outstanding, },
new SELove { SiteName = "Programmers", MyReputation = 16937, MyRating = Rating.Outstanding, },
new SELove { SiteName = "Super User", MyReputation = 650, MyRating = Rating.QuiteGood, },
new SELove { SiteName = "Server Fault", MyReputation = 489, MyRating = Rating.Good, },
// Initialize other websites here.
};
return howILoveSEWebsites.OrderByDescending(c => c.MyRating);
}
private class SELove
{
public string SiteName { get; set; }
public int MyReputation { get; set; }
public Rating MyRating { get; set; }
}
private enum Rating
{
Outstanding,
Good,
QuiteGood,
}
En este código heredado, quiero reemplazar la calificación en código por un método que cargará mi calificación de los sitios web de Stack Exchange, pudiendo tener siempre datos actualizados. Comencé a refactorizar la MyReputation
propiedad, y ahora quiero eliminar la inicialización, en su alcance. Imagine que no tengo cuatro, sino los 84 sitios web de SE.
Esto es lo que sucede cuando se usan Consolas , una fuente monoespacial. Presiono Retroceso, y eso es todo, puedo pasar el tiempo restante para hacer algo realmente útil.
Y aquí lo mismo con Segoe UI . ¡Ay!