Існує причина, яка робить практично неможливим використання для кодування шрифтів, окрім монопростору, але не згадується в інших відповідях: прямокутні виділення .
Ця функція, часто не дуже корисна і не дуже відома при роботі зі звичайним текстом, є важливою для розробників. Ви можете уявити безліч сценаріїв: видалення //
коментарів у декількох рядках, додавання дужок чи інших символів тощо. Це ще цінніше при розширеній підтримці прямокутних виділень, як у 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.
Ось що відбувається під час використання консолей , шрифту монопростіру. Я натискаю Backspace, і це все, я можу витратити час, що залишився, щоб зробити щось дійсно корисне.
І тут те саме і з інтерфейсом Segoe . Ой!