Все остальные ответы верны: суффикс Ex
означает «расширенный».Это способ введения нового класса или метода без устаревания или удаления старого, распространенный способ сохранения обратной совместимости при внедрении новых функций.
API Windows делает это повсеместно, как объяснено здесь .
Ганс намекает на проблему с этим подходом в своем объяснении: он не масштабируется .Что если вы хотите расширить «расширенную» функцию?Вы называете это FunctionExEx
?Это выглядит глупо.
На самом деле настолько глупо, что собственные руководящие принципы Microsoft по кодированию для .NET (хотя они и субъективны) особенно рекомендуют против добавления Ex
к типу .Вместо этого, если вы должны сделать это, вы должны использовать число:
MyType
MyType2 // modified version
MyType3 // oh wait, we had to modify it again!
Обвинять это в плохом планировании, поскольку dowhilefor пытается сделать это немного преждевременно.При написании реальных приложений и фреймворков вам часто нужно ship .Это означает, что вы получите быструю и грязную версию функции, которая работает .Позже вы решаете, что это плохой дизайн, и что-то нужно изменить.Вместо того, чтобы поднимать руки и полностью переписывать (вызывая огромные задержки и устаревание всего старого кода), вы вводите новый тип с другим именем.Задним числом всегда 20/20.