我刚刚开始使用 .NET Core 2.1,发现Path.TryJoin https://learn.microsoft.com/en-us/dotnet/api/system.io.path.tryjoin?view=netcore-2.1 and Path.Join https://learn.microsoft.com/en-us/dotnet/api/system.io.path.join?view=netcore-2.1方法。没有关于该方法的文档。
我运行了一些调用该方法的单元测试,它的作用与Path.Combine https://learn.microsoft.com/en-us/dotnet/api/system.io.path.combine?view=netcore-2.1.
除了使用新的 C# 之外,还有什么优点吗?Span<T> https://blogs.msdn.microsoft.com/mazhou/2018/03/25/c-7-series-part-10-spant-and-universal-memory-management/数据类型以最小化字符串操作执行?
你可以找到背后的原理Path.Join
正在被介绍here https://github.com/dotnet/corefx/issues/25536。恕我直言,它似乎是为了性能和一些小修复而牺牲简单性,也找不到任何迹象表明 Join 使用正确的分隔符创建跨平台有效路径,例如Path.Combine
但从各方面来看都是应该的。
为了详细说明讨论,主要的怪癖是Path.Join
解决是最后一个根深蒂固的论点,很多人不希望它像它那样工作(这看起来很小,但显然不是),正如可以在此处的示例中看到的C# 或 .NET 页面中最糟糕的问题 https://stackoverflow.com/a/1141114/3073551.
讨论的总体思路是慢慢弃用Combine
有利于Join
.
另请注意,已添加字符串重载Path.Join
有了这个PR https://github.com/dotnet/coreclr/pull/18458
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)