Método principal en C# – Part 1

Las aplicaciones de C# tienen un punto de entrada denominado Método principal. Es el primer método que se invoca cada vez que se inicia una aplicación y está presente en todos los archivos ejecutables de C#. La aplicación puede ser una aplicación de consola o una aplicación de Windows. El punto de entrada más común de un programa C# es static void Main()o static void Main(String []args).

Declaración diferente del método Main()

A continuación se muestran las declaraciones válidas del método principal en un programa C#:

  1. Con argumentos de línea de comando : esto puede aceptar un número n de parámetros de tipo de array durante el tiempo de ejecución.

    Ejemplo:

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

    Producción:

    Main Method

    Significado de la sintaxis principal:

    estático: significa que el método principal se puede llamar sin un objeto.
    público: son modificadores de acceso, lo que significa que el compilador puede ejecutar esto desde cualquier lugar.
    void: el método Main no devuelve nada.
    Main(): Es el nombre configurado del método Main.
    String []args: para aceptar los argumentos de la línea de comandos indexados a cero . args es el nombre definido por el usuario. Así que puedes cambiarlo por un identificador válido. [] debe ir antes de los argumentos; de lo contrario, el compilador dará errores.

  2. Sin argumentos de la línea de comandos: Depende del usuario si quiere tomar argumentos de la línea de comandos o no. Si se necesitan argumentos de línea de comandos, el usuario debe especificar los argumentos de línea de comandos en el método principal.

    Ejemplo:

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

    Producción:

    Main Method
  3. Modificadores de acceso aplicables: los modificadores de acceso public, private, protected, internal, protected internal se pueden usar con el método Main(). El modificador de acceso protegido privado no se puede usar con él.

    Ejemplo:

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

    Producción:

    Main Method

    Ejemplo:

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

    Error del compilador:

    Más de un modificador de protección especificado

  4. Sin ningún modificador de acceso: el modificador de acceso predeterminado es privado para un método Main().

    Ejemplo:

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

    Producción:

    Main Method
  5. Orden de modificadores: el usuario también puede intercambiar posiciones de modificadores estáticos y aplicables en el método Main().

    Ejemplo:

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

    Producción:

    Main Method

    Ejemplo:

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

    Producción:

    Main Method
  6. Tipo de retorno: el método principal también puede tener un tipo de retorno entero. Devolver un valor entero del método Main() hace que el programa obtenga información de estado. El valor que se devuelve del método Main() se trata como el código de salida del proceso.

    Ejemplo:

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

    Producción:

    Main Method

    Ejemplo:

    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;
        }
    }

    Producción:

    Main Method

Puntos importantes:

  • El método Main() es el punto de entrada de un programa C# desde donde comienza la ejecución.
  • El método Main() debe ser estático porque es un método de nivel de clase. Para invocar sin ninguna instancia de la clase, debe ser estático. El método Main() no estático dará un error de tiempo de compilación.
  • El método Main() no se puede anular porque es el método estático. Además, el método estático no puede ser virtual o abstracto.
  • Se permite la sobrecarga del método Main() . Pero en ese caso, solo un método Main() se considera como un punto de entrada para iniciar la ejecución del programa.

    Ejemplo: sobrecarga válida del método 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");
        }
    }

    Producción:

    Main Method
    

    Advertencias:

    prog.cs(17, 14): advertencia CS0028: `GFG.Main(int)’ tiene la firma incorrecta para ser un punto de entrada
    prog.cs(23, 14): advertencia CS0028: `GFG.Main(int, int) ‘ tiene la firma incorrecta para ser un punto de entrada

    Ejemplo: sobrecarga no válida del método 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");
        }
    }

    Errores de compilación:

    prog.cs(11, 14): error CS0017: el programa `5c56b8183078e496102b7f2662f8b84e.exe’ tiene más de un punto de entrada definido: `GFG.Main(string[])’
    prog.cs(17, 14): error CS0017: programa ` 5c56b8183078e496102b7f2662f8b84e.exe’ tiene más de un punto de entrada definido: ‘GFG.Main()’

  • El tipo permitido de argumentos de línea de comando es solo una array de strings en los parámetros del método Main().
  • El tipo de retorno permitido del método Main() es void, int, Task(From C# 7.1) y Task<T>(From C# 7.1) .
  • La declaración del método Main() puede incluir un modificador asíncrono si el tipo de retorno del método Main() es Task o Task<T>.
  • Las bibliotecas y los servicios en C# no requieren un método Main() como punto de entrada.
  • Si más de una clase de C# contiene el método Main(), el usuario debe compilar el programa con la opción /main para especificar qué método Main() será el punto de entrada.

Publicación traducida automáticamente

Artículo escrito por Anshul_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *