sirve que programacion para metodo c# console-application

que - static void c#



¿Cuál es la diferencia entre un Main static vacío público() y un Main static vacío privado() en una aplicación de consola C#? (10)

Cuál es la diferencia entre

public static void Main()

y

private static void Main()

en una aplicación de consola C #? Específicamente en lo que se refiere al método Main() (entiendo las diferencias entre lo public y lo private ).



Basado en el nivel de acceso.

private--> access to own class public --> open to alll


El principal está marcado como el punto de entrada para la ejecución en el exe mismo cuando es privado, por lo que cualquier persona externa no puede acceder al mismo.

Hacerlo público hará que el método sea accesible desde el exterior.

Lea para más aclaraciones here


Hay una diferencia, porque la primera es pública y la segunda es privada, por lo que cuando intentas usar la primera fuera de la clase funcionará bien, pero no funcionará con la segunda.

Sin embargo, no hay ninguna diferencia si intenta que uno de estos sea un punto de entrada en su aplicación. El método del punto de entrada puede ser público o privado, no importa.


La declaración privada o pública es su modificador de acceso, un modificador de acceso privado hace que sea inaccesible para los objetos externos, mientras que un modificador de acceso público lo hace accesible para los objetos externos. ejemplo de uso:

Digamos que tenemos una clase:

class myClass{ public void test(){ //do something } }

Creamos una instancia de esa clase:

myClass mClass=new myClass();

Para acceder a su función miembro deberías ir:

mClass.test();

Si tuviera un modificador de acceso privado, obtendría un error de compilación que indicaría que es inaccesible.

Y solo por el bien del conocimiento, para acceder a un miembro sin crear una instancia de una clase, también harás que el miembro sea estático, por ejemplo:

class myClass{ public static void test(){ //do something } }

Así que para acceder ahora, simplemente harías:

myClass.test();

(Tenga en cuenta que cualquier miembro al que se acceda en un miembro estático también debe ser estático)


La diferencia entre ambos es la única diferencia en public modificadores de acceso public y private porque ambos son válidos. Depende totalmente del uso de la aplicación cuál usar.

Si desea iniciar un punto de entrada con un programa externo (es decir, utilizarlo como API, con fines de prueba), es posible que deba hacerlo público para que esté accesible.

Si sabe que no hay un uso externo para la aplicación, entonces es mejor hacerla privada para que ninguna aplicación externa tenga acceso a ella.


Público y privado son los especificadores de acceso.

usamos,

public static void Main()

porque para ejecutar el programa, debe llamar a su clase en la que está presente este método Main (), para lo cual necesita que su método Main () sea público, de lo contrario no será accesible fuera de la clase.

Y la razón por la que es estático es porque necesita ser accedido sin crear ningún objeto de esa clase .ie a nivel de clase.


Para actuar como punto de inicio en su aplicación, no se requiere que el método Main sea public .

Si decide hacerlo public , sería posible que se llame desde otras clases o asambleas. Por lo general, no tendrá que hacer esto, por lo que puede mantenerlo en private .

Un posible caso de uso para hacerlo public sería permitir que las pruebas automatizadas lo invocen.


Para la mayoría de los propósitos no hará ninguna diferencia. Microsoft aboga por hacer principal privado.

El único valor real para hacer esto (que yo sepa) es que evitará que el método Main sea invocado directamente por el código base de otra aplicación.

Una buena discusión de esto está disponible here


Por ejemplo, cuando desea agregar un punto de entrada que pueda llamar desde fuera de una clase o conjunto, debe establecer public pero si no es importante, use private .