2011-04-08 10 views
4

Je suis en train de réécrire une fonction VB en C#, mais j'obtiens l'erreur suivante:membre inopposable ne peut pas être utilisé comme une méthode

Error 1 Non-invocable member 'System.DateTime.Today' cannot be used like a method. C:\Documents and Settings\daultrd\Local Settings\Temp\SSIS\ST_ceaa126ff88343ccbfdc6dd27d8de1a7\ScriptMain.cs 56 67 ST_ceaa126ff88343ccbfdc6dd27d8de1a7

Et la ligne incriminée:

strTomorrow = Convert.ToString(String.Format(DateTime.Today().AddDays(+1), "yyyyMMdd")); 

Comment puis-je résoudre ce problème? Merci les gars; tu es super rapide! Et vous avez tous dit à peu près la même chose. Donc, je l'ai enlevé la parenthèse, mais maintenant je reçois une autre erreur:

Error 1 The best overloaded method match for 'string.Format (System.IFormatProvider, string, params object[])' has some invalid arguments C:\Documents and Settings\daultrd\Local Settings\Temp\SSIS\2e23c9f006d64c249adb3d3a2e597591\ScriptMain.cs 56 44 st_ceaa126ff88343ccbfdc6dd27d8de1a7

Et voici cette ligne de code:

strTomorrow = Convert.ToString(String.Format(DateTime.Today.AddDays(+1), "yyyyMMdd")); //Strings.Format(DateAndTime.Today().AddDays(+1), "yyyyMMdd")); 
+1

Votre première réaction à un tel problème devrait toujours être de vérifier la documentation. –

Répondre

8
strTomorrow = DateTime.Today.AddDays(1).ToString("yyyyMMdd"); 
  • String.Format retourne toujours une chaîne, il n'y a pas besoin de convertir le résultat d'une chaîne
  • String.Format n'accepte pas DateTime comme premier argument. Le moyen le plus simple de convertir un DateTime en une chaîne dans un format spécifique est d'appeler DateTime.ToString et de passer le format comme argument
+0

Génial! Merci beaucoup, Tom! Vous êtes une superstar. – salvationishere

+0

Pas vraiment, mais je suis heureux de vous aider :-) –

1

Today est une propriété de sorte que vous ne devez pas ajouter entre parenthèses. Vous avez également les arguments à string.Format incorrect.

strTomorrow = String.Format("{0:yyyyMMdd}", DateTime.Today.AddDays(+1)); 
+0

Merci, mais cela me donne l'erreur: – salvationishere

+1

Erreur La meilleure méthode surchargée pour 'string.Format (System.IFormatProvider, chaîne, paramètres objet [])' a des arguments non valides \t C: \ Documents and Settings \ daultrd \ Paramètres locaux \ Temp \ SSIS \ 2e23c9f006d64c249adb3d3a2e597591 \ ScriptMain.cs st_ceaa126ff88343ccbfdc6dd27d8de1a7 – salvationishere

+0

Vous pouvez trouver la solution dans ma réponse, celle qui fonctionne. –

0

changement DateTime.Today().AddDays(1) à DateTime.Today.AddDays(1)

Aujourd'hui est une propriété, pas une méthode.

0

DateTime.Today est une propriété, pas une méthode. Enlevez les parenthèses.

Questions connexes