在Mono中使用ReferenceEquals字符串比较的问题

时间:2013-09-24 09:46:02

标签: c# unix mono referenceequals

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

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

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

并且“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语句传递验证?

非常感谢

0 个答案:

没有答案