Члены класса Path
, такие как Path.Combine
, являются незаменимыми. Они приводят к большому, чистому, правильному коду. К сожалению, если вы используете его для управления заголовками в препроцессоре C++, вы быстро поймете, что он появляется больше, чем ожидалось в профилировщике. Зачем?Должен ли `System.IO.Path` быть конкретным?
Исключения: ArgumentException: path1 или path2 содержат один или несколько недопустимых символов, определенных в
GetInvalidPathChars
.
Даже без проверки команда комбайна O (n) (поскольку она должна копировать содержимое строки). Однако это намного дешевле, чем проверка наличия любого из GetInvalidPathChars
'~ 40 членов.
Я считаю, что класс Path
должен быть неизменным типом, который содержит строку, которая, как известно, не содержит никаких недопустимых символов. Статические элементы должны быть предусмотрены для работы на string
(как существует сейчас) и идентичный набор, добавленный для работы на объектах Path
. Внесение этого изменения в .NET Framework:
- не является критическим изменением (изменение статического класса в герметичном конкретный тип неразрывный)
- значительно повышает производительность операций несколько передовых методов
Мнения?