C#:没有超载的方法'等于'需要' 4'参数

时间:2017-02-02 23:31:34

标签: c#

我的断言如下。

public final class MySchema implements BaseColumns {

    // ...

}

并且它正在抛出错误

  

方法没有超载'等于'需要' 4'参数

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

3 个答案:

答案 0 :(得分:0)

检查你的parens这是否已修复

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());

答案 1 :(得分:0)

您将4个参数发布到string.Equals(),并且此类函数不存在。最多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()
    )
);

答案 2 :(得分:0)

你感到困惑,因为这是一个巨大的代码行。把它分成多行。

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函数,这是不受支持的。你真的想在这里测试什么?