2017-02-02 2 views
-3

Ich habe meine Behauptung wie folgt.C#: Keine Überladung für die Methode 'Equals' dauert '4' Argumente

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

und es wirft einen Fehler

Keine Überlastung für die Methode 'Equals'

jemand bitte helfen zu finden, was falsch Kann '4' Argumente

nimmt, ist?

+2

Welchen Teil des Fehlers verstehen Sie nicht? – SLaks

+1

Genau das, was es sagt. Sie übergeben 4 Parameter an Gleichgestellte. –

+1

Warum vergleichen Sie Zeichenfolgen anstelle von DateTime-Instanzen? – Filburt

Antwort

0

überprüfen Sie Ihre Pars das ist es

Fest
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()); 
+0

: - Danke, dass du auf Parens hingewiesen hast. Es hat das Problem gelöst. –

0

Sie veröffentlichen 4 Parameter String.Equals() und eine solche Funktion existiert nicht. Höchstens Equals benötigt 3 Parameter.

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

Sie bekommen verwirrt, weil dies eine große Codezeile ist. Brechen Sie es in mehrere Zeilen.

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

Offensichtlich übergeben Sie jetzt vier Parameter in die Equals-Funktion, die nicht unterstützt wird. Was versuchst du wirklich hier zu testen?

Verwandte Themen