Perché è solo un metodo principale senza parametri considerato come & # 8220; oggetto di avvio valido & # 8221; per un progetto C #?
-
06-07-2019 - |
Domanda
Ho scaricato un file zip di file di origine contenente un progetto C # con più punti di ingresso / metodi principali. Dato che volevo armeggiare, ne ho creato un altro come questo in un nuovo tipo / classe
class MyExperiments
{
static void Main(String[] args)
{
// do something
}
}
poi sono passato alle proprietà del progetto. Basta passare l'oggetto di avvio su MyExperiments eh? Con mia sorpresa, il menu a discesa non ce l'ha. Ho ricostruito, reso pubblico il metodo, provato un sacco di cose .. ma senza risultati. Alla fine ho modificato manualmente .csproj nel blocco note e poi ha funzionato. Più armeggiando, ho rimosso i parametri per renderlo
static void Main()
e ora le proprietà del progetto VS potevano "vedere" l'oggetto di avvio. Quindi ora posso selezionarlo usando il menu a discesa. Ho quindi aggiunto indietro String [] e tutto funzionava ancora.
Mi sembra un po 'strano (perché la forma più comune è un metodo Main con parametri per gli argomenti della riga di comando dai tempi C / C ++). MSDN afferma che il menu a discesa conterrà un avvio valido oggetti se esistono nel tuo progetto.
Soluzione
Per fortuna l'hai incollato, è la "S" maiuscola in Main (String [] args)
. Apparentemente VS usa una corrispondenza di testo ed è sensibile al maiuscolo / minuscolo. Come probabilmente dovrebbe essere.
Altri suggerimenti
lol - sembra un bug nell'IDE:
static void Main(String[] args) {}
non viene visualizzato, ma
static void Main(string[] args) {}
fa!
Aggiornamento: Risposta al Feedback / bug di Connect,
Grazie per il feedback! Sembra il qui il problema è che la stringa " String " parametro nel metodo principale deve essere una stringa " completamente minuscola (ed esso sembra essere stato sottolineato sul tuo stackoverflow post). io vedo un suggerimento qui per aggiornare il progetto pagina delle proprietà per essere leggermente più intelligente sulla raccolta dell'oggetto di avvio, ma dato che c'è un ragionevole soluzione alternativa, investiremo il nostro risorse per stabilizzare e migliorare prestazioni di VS2010. sto per andare e risolvere il bug come " Wont Fix " ma non esitate a farlo riattiva il bug se ne hai ulteriori domande / commenti.
Grazie, DJ Park C # IDE, Programma Responsabile
Quindi sembra essere qualcosa che dovresti tenere in mente per ora - Gishu