C#:方法'Equals'没有重载'4'参数

  • 本文关键字:重载 参数 Equals 方法 c#
  • 更新时间 :
  • 英文 :


我的断言如下。

Assert.True(jsonDataLine[i].AdvertisedStartTime.Value.ToString().Equals(DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString(), "AdvertisedStartTime didn't match Json ", jsonDataLine[i].AdvertisedStartTime.Value.ToString(), DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString()));

并且它抛出了一个错误

方法"等于"没有重载,需要"4"参数

任何人都可以帮忙找出问题所在吗?

检查你的括号,这是固定的

Assert.True(jsonDataLine[i].AdvertisedStartTime.Value.ToString().Equals(DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString()),
    "AdvertisedStartTime didn't match Json ", jsonDataLine[i].AdvertisedStartTime.Value.ToString(),
    DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString());

您将 4 个参数发布到字符串中。Equals((,而这样的函数不存在。等于最多需要 3 个参数。

https://msdn.microsoft.com/en-us/library/system.string.equals(v=vs.110(.aspx

Assert.True(
    jsonDataLine[i].AdvertisedStartTime.Value.ToString().Equals(
        DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString(),
        "AdvertisedStartTime didn't match Json ", 
        jsonDataLine[i].AdvertisedStartTime.Value.ToString(), 
        DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString()
    )
);

你会感到困惑,因为这是一行巨大的代码。将其分成多行。

var lineStr = jsonDataLine[i].AdvertisedStartTime.Value.ToString();
Assert.True(
    lineStr.Equals(
        DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString(), //1
        "AdvertisedStartTime didn't match Json ", //2
        jsonDataLine[i].AdvertisedStartTime.Value.ToString(), //3
        DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString() //4
    )
);

显然,现在您正在将四个参数传递到 Equals 函数中,该函数不受支持。你真正想在这里测试什么?

相关内容

  • 没有找到相关文章

最新更新