Há uma razão que torna praticamente impossível o uso de fontes diferentes da monoespaçada para codificação, mas não foi mencionado em outras respostas: seleções retangulares .
Esse recurso, geralmente pouco útil e pouco conhecido ao trabalhar com texto comum, é essencial para os desenvolvedores. Você pode imaginar vários cenários: remover //
comentários em várias linhas, adicionar parênteses ou outros caracteres etc. Isso é ainda mais valioso com o suporte avançado a seleções retangulares, como no Visual Studio 2010, onde você não pode apenas selecionar e remover texto, mas selecione e substitua-o.
Vamos dar um exemplo:
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,
}
Neste código legado, desejo substituir a classificação no código por um método que carregará minha classificação nos próprios sites do Stack Exchange, podendo sempre ter dados atualizados. Comecei a refatorar a MyReputation
propriedade e agora quero remover a inicialização no escopo. Imagine que eu não tenho quatro, mas todos os sites da 84 SE.
Aqui está o que acontece ao usar o Consolas , uma fonte monoespaçada. Pressiono Backspace, e é tudo, posso gastar o tempo restante para fazer algo realmente útil.
E aqui a mesma coisa com Segoe UI . Ai!