¿Por qué el método principal es privado?

La nueva plantilla de proyecto de consola crea un método principal como este:

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

¿Por qué es que ni el método Main ni la clase de Program deben ser públicos?

El punto de entrada de un progtwig está marcado con la directiva .entrypoint IL. No importa si el método o la clase es público o no, todo lo que importa es esta directiva.

El método Main no debería necesitar ser llamado por nadie.

En realidad, está marcado como el punto de entrada para la ejecución en el EXE, y por lo tanto no tiene llamadas externas por defecto.

Si QUIERES , puedes abrirlo para que se llame marcando public , por ejemplo, si conviertes una aplicación de consola en una API.

La palabra clave pública o privada no hace una diferencia en este caso, depende completamente del uso y el scope de la aplicación. Use las palabras clave mencionadas a continuación en diferentes escenarios ..

1) Público: si queremos iniciar un punto de entrada mediante cualquier progtwig externo, entonces puede que necesite hacerlo público para que sea accesible. 2) Privado: si sabemos que no hay uso externo para la aplicación, entonces es mejor hacerlo privado para que ninguna aplicación externa pueda acceder a él.