小编use*_*917的帖子

Mono 中 ReferenceEquals 字符串比较的问题

我正在 Mono 中创建一个 Uri 对象(在 unix 系统下),这非常简单(就像在 VStudio/Windows 中一样):new Uri(" http://my.url_here.com/ ")。然后我创建另一个使用 Uri 的系统对象:HttpSelfHostConfiguration()。

在 HttpSelfHostConfiguration 的源代码中,接收到的 Uri 将使用以下 if 语句进行验证(在 Mono 源中检查):

if (!ReferenceEquals(baseAddress.Scheme, Uri.UriSchemeHttp) && !ReferenceEquals(baseAddress.Scheme, Uri.UriSchemeHttps))
    {
        throw Error.ArgumentUriNotHttpOrHttpsScheme("baseAddress", baseAddress);
    }
Run Code Online (Sandbox Code Playgroud)

并且“if”失败,因为“ReferenceEquals(baseAddress.Scheme, Uri.UriSchemeHttp)”返回false,意味着对于Mono(在Unix中运行)baseAddress.Scheme不等于Uri.UriSchemeHttp。

请注意,在 Mono(Unix) 中已确认调试: baseAddress.Scheme = "http" 和 Uri.UriSchemeHttp = "http"。

在 VStudio 下,这很完美。

任何人都可以帮助我理解 ReferenceEqual 在 Mono(Unix) 下是如何工作的,最重要的是,我如何在 Mono 中创建一个有效的 Uri 并通过上面的 if 语句进行验证?

多谢

c# unix mono referenceequals

5
推荐指数
0
解决办法
296
查看次数

标签 统计

c# ×1

mono ×1

referenceequals ×1

unix ×1