在 Uri 对象上,原始字符串属性可以为空吗?

Posted

技术标签:

【中文标题】在 Uri 对象上,原始字符串属性可以为空吗?【英文标题】:On the Uri object, can the original string property ever be null? 【发布时间】:2014-05-30 20:51:44 【问题描述】:

是否可以构造 Uri 对象以使其具有空原始字符串?

Uri myUri.OriginalString != null 检查是否值得?

OriginalString 的 MSDN 指出:

InvalidOperationException 是可能的,如果 此实例表示相对 URI,并且此属性仅对绝对 URI 有效。 但是我无法解决这个问题。

new Uri("~/SignIn", UriKind.Relative) 似乎适用于 OriginalString。

【问题讨论】:

你能再添加几个标签或一些上下文吗? 如果不确定,我通常只做检查。安全总比后悔好! 【参考方案1】:

来自MSDN :如果Url 字符串为null(如果它为空、格式错误等),则在构造时抛出ArgumentNullException

所以不需要检查。

【讨论】:

哇,真快 :) - 见编辑,显然 InvalidOperationException 是可能的,但我不知道如何绊倒它。 是的,这是可能的。但是,OriginalString 永远不会为空【参考方案2】:

http://msdn.microsoft.com/en-us/library/vstudio/system.uri.originalstring 表示此属性包含构造此实例时指定的确切 URI;否则为空。

http://msdn.microsoft.com/en-us/library/vstudio/z6c2z492 指定 Uri 不能用空字符串构造。

因此,您无需检查 null。但是您可能需要检查 String.Empty。

【讨论】:

以上是关于在 Uri 对象上,原始字符串属性可以为空吗?的主要内容,如果未能解决你的问题,请参考以下文章

php json rpc 服务器方法可以为空吗?

C# 8 中的不可为空的引用类型在运行时可以为空吗?

ifelse语句if条件可以为空吗

mongo 非主键 objectid 可以为空吗

移动语义只是一个浅拷贝并将其他指针设置为空吗?

2021-04-09【技术】关于空数组和空对象为true的问题