В чем преимущество Path.TryJoin по сравнению с Path.Combine в .NET Core?

Я только начал использовать .NET Core 2.1 и нашел ссылку Path.TryJoin и Path.Join. Документации по методу нет.

Я выполнил несколько модульных тестов, вызвав этот метод, и он не сделал ничего, кроме Path.Combine.

Есть ли в этом какое-либо преимущество, кроме использования нового C# Span<T>, чтобы свести к минимуму выполнение манипуляций со строками?


person krillgar    schedule 24.09.2018    source источник


Ответы (1)


Обоснование введения Path.Join можно найти здесь. ИМХО, кажется, что простота меняет производительность и некоторые незначительные исправления, также не удалось найти никаких указаний на то, что Join создает кросс-платформенные действительные пути с правильными разделителями, такими как Path.Combine, но, по всем признакам, должен.

Чтобы уточнить обсуждение, основной причудой, которую разрешает Path.Join, является последний укоренившийся аргумент, который многие люди не ожидают, что он будет работать так, как он работает (что кажется незначительным, но явно не так), как можно увидеть в примерах здесь на странице худшая ошибка на странице C# или .NET.

Общая идея обсуждения заключается в постепенном отказе от Combine в пользу Join.

Также обратите внимание, что для Path.Join были добавлены перегрузки строк с этим PR.

person MarkovskI    schedule 24.09.2018
comment
Хорошая находка! - person krillgar; 25.09.2018
comment
Если бы вы могли добавить в свой ответ обсуждение того, как Span<char> поступает с некоторых устройств, я приму это. Я не хочу, чтобы это оставалось только ссылкой на случай изменения URL-адреса. - person krillgar; 25.09.2018