草庐IT

TryCreate

全部标签

c# - 为什么 Uri.TryCreate 在 url 包含土耳其字符时抛出 NRE?

我遇到了一个有趣的情况,当它应该返回false时,我从Uri.TryCreate方法中得到了NRE。您可以重现问题,如下所示:Uriurl;if(Uri.TryCreate("http:Ç",UriKind.RelativeOrAbsolute,outurl)){Console.WriteLine("success");}我猜它在解析过程中失败了,但是当我尝试"http:A"时,它返回true并将其解析为相对url。即使解析失败,据我所知,它也应该返回false,这里可能是什么问题?这似乎是实现中的错误,因为文档没有提及此方法的任何异常。错误发生在.NET4.6.1而不是4.0

c# - Uri.TryCreate 对任何字符串值返回 true?

我尝试使用Uri.TryCreate方法验证Uri,当我使用无效字符串调用它时,该方法返回true。任何想法为什么?我的代码如下:privatevoidbutton1_Click(objectsender,EventArgse){UritempValue;if(Uri.TryCreate("NotAURL",UriKind.RelativeOrAbsolute,outtempValue)){MessageBox.Show("?");}} 最佳答案 这是一个有效的相对URL。一个无效URI的例子是:"http://example.co