-2

我一直在尝试在 C#.NET 上创建此控制台应用程序,但收到以下错误消息:

错误 1 ​​预期的类、委托、枚举、接口或结构

我是 C# 的新手,我以前做过 C++。

主要文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


public void Main(string[] args)
{
  string repositories = args[0];
  string transaction = args[1];

  var processStartInfo = new ProcessStartInfo
                           {
                             FileName = "svnlook.exe",
                             UseShellExecute = false,
                             CreateNoWindow = true,
                             RedirectStandardOutput = true,
                             RedirectStandardError = true,
                             Arguments = String.Format("log -t \"{0}\" \"{1}\"", transaction, repositories)
                           };

  var p = Process.Start(processStartInfo);
  var s = p.StandardOutput.ReadToEnd();
  p.WaitForExit();

  if (s == string.Empty)
  {
    Console.Error.WriteLine("Message must be provided");
    Environment.Exit(1);
  }

  Environment.Exit(0);
}
4

6 回答 6

8

主要需要是静态的。

public static void Main

您还需要将它包装到一个名称空间中,其中包含一个类。VS 2010 提供的标准控制台应用程序模板如下所示,您可以看一下:

namespace ConsoleApplication3
{
    class Program
    {
       static void Main(string[] args)
       {
       }
    }
}
于 2012-09-04T15:19:36.253 回答
3

您的程序中缺少一门课程=)。Asweel 作为命名空间。那么Main void应该是一个静态方法

namespace MyApplication
{
    static class Program
    {
        static void Main()
        {
        }
    }
}
于 2012-09-04T15:21:08.890 回答
3

C# 中的每个方法都必须包含在classorstruct中。无法在 C# 中定义独立(“顶级”)函数。

尝试:

public class Program
{
 public static void Main(string[] args)
 {

最后还有一个额外}的。

如果您来自 C++ 背景,正如您所指出的,您也不应该假设struct并且与classC++ 具有相同的相似之处和不同之处。

于 2012-09-04T15:21:53.620 回答
2

首先,您是否将方法包含在类或结构中?

您必须声明包含在类或结构中的方法,因为方法不是根成员。

于 2012-09-04T15:20:42.680 回答
1

Main 需要是静态的,并且在一个类中:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

public class Program 
{
    public static void Main(string[] args) 
    { 
        string repositories //...
于 2012-09-04T15:21:33.147 回答
1

C# 中的函数必须位于类或结构中。只有委托、类、结构、枚举和接口可以存在于命名空间级别。

public static class MyClass
{
    public static void Main (string[] paArguments) { /* ... */ }
}
于 2012-09-04T15:23:03.973 回答