📜  C#中的主要方法

📅  最后修改于: 2021-05-30 01:30:19             🧑  作者: Mango

C#应用程序具有一个称为Main Method的入口点。它是第一个在应用程序启动时被调用的方法,该方法存在于每个C#可执行文件中。该应用程序可以是控制台应用程序或Windows应用程序。 C#程序最常见的入口点是static void Main()static void Main(String []args)

Main()方法的不同声明

以下是C#程序中Main方法的有效声明:

  1. 使用命令行参数:在运行时,它可以接受n个数组类型参数。

    例子:

    using System;
      
    class GFG {
      
        // Main Method
        static public void Main(String[] args)
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    输出:

    Main Method

    主要语法的含义:

  2. 没有命令行参数:用户是否要接受命令行参数由用户决定。如果需要命令行参数,则用户必须在Main方法中指定命令行参数。

    例子:

    using System;
      
    class GFG {
      
        // Main Method
        static public void Main()
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    输出:

    Main Method
  3. 适用的访问修饰符: public,private,protected,internal,protected内部访问修饰符可与Main()方法一起使用。私有受保护的访问修饰符不能与它一起使用。

    例子:

    using System;
      
    class GFG {
      
        // Main Method
        protected static void Main()
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    输出:

    Main Method

    例子:

    using System;
      
    class GFG {
      
        // Main Method
        private protected static void Main()
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    编译器错误:

  4. 没有任何访问修饰符:默认访问修饰符对Main()方法是私有的。

    例子:

    using System;
      
    class GFG {
      
        // Main Method without any
        // access modifier
        static void Main()
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    输出:

    Main Method
  5. 修饰符的顺序:用户还可以在Main()方法中交换静态修饰符和适用修饰符的位置。

    例子:

    using System;
      
    class GFG {
      
        // Main Method
        public static void Main()
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    输出:

    Main Method

    例子:

    using System;
      
    class GFG {
      
        // Main Method with swapping of modifiers
        static internal void Main()
        {
      
            Console.WriteLine("Main Method");
        }
    }
    

    输出:

    Main Method
  6. 返回类型: Main方法也可以具有整数返回类型。从Main()方法返回整数值会使程序获取状态信息。从Main()方法返回的值被视为该过程的退出代码。

    例子:

    using System;
      
    class GFG {
      
        // Main Method with int return type
        static int Main()
        {
      
            Console.WriteLine("Main Method");
      
            // for successful execution of code
            return 0;
        }
    }
    

    输出:

    Main Method

    例子:

    using System;
      
    class GFG {
      
        // Main Method with int return type
        static int Main(String[] args)
        {
      
            Console.WriteLine("Main Method");
      
            // for successful execution of code
            return 0;
        }
    }
    

    输出:

    Main Method

重要事项:

  • Main()方法是C#程序从此处开始执行的入口点。
  • Main()方法必须是静态的,因为它是类级别的方法。要在没有任何类实例的情况下调用它,它必须是静态的。非静态Main()方法将给出编译时错误。
  • Main()方法不能被覆盖,因为它是静态方法。同样,静态方法不能是虚拟的或抽象的。
  • 允许Main()方法的重载。但是在那种情况下,只有一个Main()方法被视为开始执行程序的一个入口点。

    示例: Main()方法的有效重载

    // C# program to demonstrate the
    // Valid overloading of Main()
    // method
    using System;
      
    class GFG {
      
        // Main method
        // it can also be written as
        // static void Main(String []args)
        static void Main()
        {
            Console.WriteLine("Main Method");
        }
      
        // overloaded Main() Method
        static void Main(int n)
        {
            Console.WriteLine("Overloaded Main Method");
        }
      
        // overloaded Main() Method
        static void Main(int x, int y)
        {
            Console.WriteLine("Overloaded Main Method");
        }
    }
    

    输出:

    Main Method
    

    警告:

    示例: Main()方法的无效重载

    // C# program to demonstrate the
    // Invalid overloading of Main()
    // method
    using System;
      
    class GFG {
      
        // Main method
        // it can also be written as
        // static void Main()
        static void Main(String[] args)
        {
            Console.WriteLine("Main Method");
        }
      
        // overloaded Main() Method
        static void Main()
        {
            Console.WriteLine("Overloaded Main Method");
        }
    }
    

    编译错误:

  • 命令行参数的允许类型仅是Main()方法的参数中的String数组。
  • Main()方法的允许返回类型为void,int,Task(来自C#7.1)和Task (来自C#7.1)
  • 如果Main()方法的返回类型为Task或Task ,则Main()方法的声明可以包含async修饰符。
  • C#中的库和服务不需要Main()方法作为入口点。
  • 如果一个以上的C#类包含Main()方法,则用户必须使用/ main选项编译该程序,以指定哪个Main()方法将作为入口点。