【问题标题】:What is the advantage of Path.TryJoin over Path.Combine in .NET Core?.NET Core 中 Path.TryJoin 相对于 Path.Combine 的优势是什么?
【发布时间】:2019-02-27 05:15:16
【问题描述】:

我刚开始使用 .NET Core 2.1,发现了Path.TryJoinPath.Join 方法。没有关于该方法的文档。

我运行了一些调用该方法的单元测试,它与Path.Combine 没有什么不同。

除了利用新的 C# Span<T> 数据类型来最小化字符串操作执行之外,还有什么好处吗?

【问题讨论】:

    标签: c# path .net-core


    【解决方案1】:

    您可以找到引入Path.Join 背后的基本原理here。恕我直言,它似乎是在以简单性换取性能和一些小修复,也找不到任何迹象表明 Join 创建了具有正确分隔符的跨平台有效路径,如 Path.Combine 确实,但从所有角度来看都是应该的。

    为了详细说明讨论,Path.Join 解决的主要怪癖是最后一个根深蒂固的论点,很多人不希望以它的方式工作(接缝次要但显然不是),因为可以在the worst gotcha in C# or .NET page 上的示例中可以看到。

    讨论的总体思路是慢慢弃用Combine,转而支持Join

    还请注意,已为 Path.Join 添加了带有此 PR 的字符串重载

    【讨论】:

    • 很好的发现!
    • 如果您可以在您的答案中添加一些关于Span<char> 如何来自某些设备的讨论,我会接受。如果 URL 发生变化,我不希望它保留为仅链接。
    猜你喜欢
    • 2019-02-01
    • 2011-06-17
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    相关资源
    最近更新 更多