2011-04-08 77 views
4

我試圖重寫一個VB函數轉換成C#,但我發現了以下錯誤:非可調用成員不能被使用的方法等

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

而且出錯行:

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

我該如何解決這個問題? 謝謝你們;你超級快!而你所有的人都說過同樣的事情。所以我刪除了括號,但現在我得到一個不同的錯誤:

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

這裏是這行代碼:

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

對於任何此類問題的第一反應應始終是檢查文檔。 – 2011-04-08 22:09:50

回答

8
strTomorrow = DateTime.Today.AddDays(1).ToString("yyyyMMdd"); 
  • 的String.Format總是返回一個字符串,沒有必要將結果轉換爲字符串
  • 的String.Format不接受一個DateTime作爲第一個參數。將DateTime轉換爲特定格式的字符串的最簡單方法是調用DateTime.ToString並將格式作爲參數傳遞
+0

太棒了!非常感謝,湯姆!你是超級巨星。 – salvationishere 2011-04-08 22:41:51

+0

不是,但我很樂意幫助你:-) – 2011-04-08 22:43:44

1

Today是一個屬性,因此你不應該加括號。你也有string.Format不正確的參數。

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

由於但是這給我的錯誤: – salvationishere 2011-04-08 22:24:10

+1

錯誤\t \t 1爲最好重載方法匹配 '的String.Format(System.IFormatProvider,串,params對象[])' 具有一些無效參數\t C:\ Documents和Settings \ daultrd \ Local Settings \ Temp \ SSIS \ 2e23c9f006d64c249adb3d3a2e597591 \ ScriptMain.cs st_ceaa126ff88343ccbfdc6dd27d8de1a7 – salvationishere 2011-04-08 22:24:40

+0

你可以在我的答案中找到解決方案,那個工作。 – 2011-04-08 22:31:20

0

變化DateTime.Today().AddDays(1)DateTime.Today.AddDays(1)

今天是一個屬性,而不是方法。

0

DateTime.Today是一種財產,而不是一種方法。刪除偏見。