用c#创建一个文件Uri
本文关键字:一个 文件 Uri 创建 | 更新日期: 2023-09-27 18:07:02
我想我错过了一些明显的东西....
我一直在阅读一个新项目中的代码,并遇到了类似以下的代码:
var filePath = @"C:'temp'tmp1234.tmp"; // Generally obtained from System.IO.* calls
var uri = new Uri("file://" + filePath);
我想这相当于:
var filePath = @"C:'temp'tmp1234.tmp";
var uri = new Uri(filePath);
(假设Uri类可以解析文件路径,推断方案并执行转义所需的任何操作)。
由于代码似乎可以工作,并且这种工作如此频繁和一致,我假设原始开发人员有一个很好的理由使用"file://" + filePath
习语。有人能告诉我原因是什么吗?
谢谢!
它们都生成完全相同的Uri
对象,(显然)OriginalString
除外。
您可以在LINQPad:
中看到这一点var filePath = @"C:'temp'tmp1234.tmp"; // Generally obtained from System.IO.* calls
new []{
new Uri("file://" + filePath),
new Uri(filePath)
}.Dump();
我猜最初的开发者并没有意识到这一点。
实际上,添加"file://"会强制执行该方案,因此跳过了.NET调用"ParseSchemeCheckImplicitFile"方法的需要…所以…它[可以忽略不计]快。
那,而且,它是明确的-我个人更喜欢。
编辑:实际上,我应该说的是它跳过了该方法中的许多代码。