See following points,

  1. Main() method is the starting point of a program.

  2. Main() method is always "Static".

  3. Main() should NOT be "Public". Default access specifier of Main() is Private.

  4. Following are the acceptable signatures of Main() method,
    1. static void Main(string[] args){}
    2. static void Main(){}
    3. staticint Main(string[] args){}
    4. staticint Main(){}
  5. Main() method can have either of the two return types - void and int.

  6. Main() method can either have input string arguments or none.

  7. There can be only one entry point in a program. However, we can have multiple Main() in the same project. But you need to define the "Startup object" defining which is the single entry point.

    Sample Code:

    We have two classes,
    1. namespace ConsoleApplication2
    2. {
    3. //Class 1
    4. public class Class1
    5. {
    6. static void Main(string[] args)
    7. {}
    8. }
    9. //Class 2
    10. public class Class2
    11. {
    12. static void Main(string[] arg)
    13. {}
    14. }
    15. }
    When you compile this program, you can see both classes listed as Startup objects in Property pages of the Project.

    You need to select one of the two.