在 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 对象上,原始字符串属性可以为空吗?的主要内容,如果未能解决你的问题,请参考以下文章