¿Por qué solo se considera un método Main sin parámetros como un "objeto de inicio válido" para un proyecto de C #?
-
06-07-2019 - |
Pregunta
Descargué un archivo zip de archivos fuente que contiene un proyecto C # con múltiples puntos de entrada / Métodos principales. Como quería jugar un poco, creé otro como este en un nuevo tipo / clase
class MyExperiments
{
static void Main(String[] args)
{
// do something
}
}
luego cambié a las propiedades del proyecto. Simplemente cambie el objeto de inicio a MyExperiments ¿eh? Para mi sorpresa, el menú desplegable no lo tenía. Reconstruí, hice público el método, probé muchas cosas ... pero fue en vano. Finalmente edité el .csproj manualmente en el bloc de notas y luego funcionó. Más retoques, eliminé los parámetros para hacerlo
static void Main()
y ahora las propiedades de VS Project podrían 'ver' el objeto de inicio. Entonces ahora podría seleccionarlo usando el menú desplegable. Luego agregué la Cadena [] y todo funcionó.
Me parece un poco extraño (porque la forma más común es un método Main con parámetros para argumentos de línea de comando de los tiempos C / C ++). MSDN dice que el menú desplegable contendrá un inicio válido objetos si existen en su proyecto.
Solución
Lo bueno es que lo ha pegado, es la 'S' mayúscula en Main (String [] args)
. Aparentemente, VS usa algunas coincidencias de texto y distingue entre mayúsculas y minúsculas. Como probablemente debería ser.
Otros consejos
jajaja - parece un error en el IDE:
static void Main(String[] args) {}
no se muestra, pero
static void Main(string[] args) {}
lo hace!
Actualización: Respuesta a Connect Feedback / bug,
¡Gracias por los comentarios! Se ve el El problema aquí es que la "cadena" parámetro en el método principal necesita ser una "cadena" en minúsculas (y eso parece haber sido señalado en su publicación de stackoverflow). veo un sugerencia aquí para actualizar el proyecto página de propiedades para ser un poco más inteligente sobre recoger el objeto de inicio, pero dado que hay un razonable solución alternativa, vamos a invertir nuestro recursos para estabilizar y mejorar rendimiento de VS2010. Me voy a ir adelante y resolver el error como un " No Fix " pero por favor siéntase libre de reactiva el error si tienes más preguntas / comentarios.
Gracias, DJ Park C # IDE, Programa Gerente
Entonces parece ser algo que deberías tener en mente por ahora - Gishu