非可调用成员不能被使用的方法等

问题描述:

我试图重写一个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

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

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

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

今天是一个属性,而不是方法。

DateTime.Today是一种财产,而不是一种方法。删除偏见。