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