Main方法是程序的入口点,您将在那里创建对象和调用其他方法,程序控制在该方法中开始和结束。一个 C# 程序中只能有一个入口点。该方法在类或结构的内部声明。它必须为静态方法,而不应为公共方法。(它接受默认访问级别 private。)
它可以具有 void 或 int 返回类型。声明 Main 方法时既可以使用参数,也可以不使用参数,使用参数的话只能是string数组,Main方法一共有以下四种形式
1.没有参数 返回值为void        static void Main()
2.没有参数返回值为int             static int Main()
3.带有参数返回值为void          static void Main(string[] args)
4.带有参数返回值为int             static int Main(string[] args)
这4种Main方法都没有包含访问修饰符(如public)。即使包含访问修饰符,也会在运行时忽略它们。C#的惯例是在Main方法中忽略访问修饰符。
string数组参数的使用(例子) :
步骤1:建立一个控制台应用程序,暂且命名为Main.cs
步骤2:贴上下面这段代码。
using System;
class Program
{
      static void Main(string[] args){
      int argsLength = args.Length;
      Console.WriteLine("Main函数参数args的长度:" + argsLength.ToString());
      for (int i = 0; i < argsLength; i++)
      {
           Console.Write("第" + i.ToString() + "位是:");
           Console.WriteLine(args[i].ToString());
      }
      }
}
步骤3:编译并运行Main.cs,生成Main.exe文件
步骤4:在命令行模式下输入c:\>Main a b c ,敲回车看结果
输出结果为:
Main函数参数args的长度:3
第0位是:a
第1位是:b
第2位是:c
由于参数个数是未知的,所以允许输入任意多个,也可以不输入
或者在运行之前将我们的参数设定,以便传入。在"解决方案"窗口中,右键你的项目名,选择 "属性",在弹出的新窗口中选择 "调试" ->"启动选项"->"命令行参数" 中,输入你要传入的string参数值。(多个参数之间用空格隔开)
 
如果不需要使用 Main 的返回值,则返回 void 可以使代码变得略微简单。但是,返回整数可使程序将状态信息与调用该可执行文件的其他程序或脚本相关。下面的示例演示使用
Main 的返回值。
class MainReturnValTest
{
    static int Main()
    {
        //...
        return 0;
    }
}
由于此示例使用了批处理文件,因此最好从命令行编译这段代码,
然后,使用批处理文件调用前面的代码示例所生成的可执行文件。由于代码返回零,因此批处理文件将报告成功。但如果前面的代码更改为返回非零值,然后重新编译,则批处理
文件的后续执行将指示失败。
rem test.bat
@echo off
MainReturnValueTest
@if "%ERRORLEVEL%" == "0" goto good
:fail
    echo Execution Failed
    echo return value = %ERRORLEVEL%
    goto end
:good
    echo Execution Succeded
    echo return value = %ERRORLEVEL%
    goto end
:end
 
示例输出
Execution Succeded
return value = 0

在此示例中,使用了一个批处理文件来执行程序并测试 Main 函数的返回值。在 Windows 中执行程序时,Main 函数返回的任何值都将存储在名为 ERRORLEVEL 的环境变量中。通
过检查 ERRORLEVEL 变量,批处理文件可以确定执行的结果。通常,返回值为零指示执行成功。