Существует причина, которая делает практически невозможным использование для кодирования других шрифтов, кроме моноширинного, но не упоминалась в других ответах: прямоугольные выделения .
Эта функция, часто не очень полезная и не очень известная при работе с обычным текстом, необходима разработчикам. Вы можете представить себе множество сценариев: удаление //
комментариев в несколько строк, добавление скобок или других символов и т. Д. Это еще более ценно с расширенной поддержкой прямоугольных выделений, как в Visual Studio 2010, где вы можете не только выделять и удалять текст, но выберите и замените его.
Давайте возьмем пример:
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,
}
В этом унаследованном коде я хочу заменить рейтинг в коде методом, который будет загружать мой рейтинг с самих сайтов Stack Exchange, чтобы всегда иметь актуальную информацию. Я начал проводить рефакторинг MyReputation
свойства, и теперь я хочу удалить инициализацию в области видимости. Представьте, что у меня не четыре, а все 84 сайта SE.
Вот что происходит при использовании Consolas , моноширинного шрифта. Я нажимаю Backspace, и все, я могу потратить оставшееся время, чтобы сделать что-то действительно полезное.
И здесь то же самое с Segoe UI . Ой!