在c#类型后,新表达式需要()或[]

时间:2014-04-06 12:03:24

标签: c#

我使用CodeDom编译以下代码并保存为EXE

using System;
using System.Windows.Forms;
using Microsoft.Win32.TaskScheduler;

class Program
{
static void Main(string[] args)
{
  using (TaskService ts = new TaskService())
  {
     TaskDefinition td = ts.NewTask();
     td.RegistrationInfo.Description = "Does something";

     // Create a trigger that will fire the task at this time every other day
     td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });

     // Create an action that will launch Notepad whenever the trigger fires
     td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));

     // Register the task in the root folder
     ts.RootFolder.RegisterTaskDefinition(@"Test", td);

     // Remove the task we just created
     ts.RootFolder.DeleteTask("Test");
  }
}
}

唯一的问题是,当我选择保存位置并编译时,我得到错误"新的表达式需要()或类型"后面的[]。我真的无法看到我在这里失踪的东西,我们将非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

CodeDOM默认使用C#2编译器,因此您的示例将无法编译。要使用C#3编译器进行编译,您可以在构造时将选项传递给提供程序:

var csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });

答案 1 :(得分:0)

这一行应该解决它:

td.Triggers.Add(new DailyTrigger() { DaysInterval = 1 });

下次,将代码放入Visual Studio并使用警告/错误窗口来查找问题。