Pourquoi est-ce seulement une méthode sans paramètre Main considérée comme un "objet de démarrage valide" & # 8221; pour un projet C #?
-
06-07-2019 - |
Question
J'ai téléchargé un zip de fichiers source contenant un projet C # avec plusieurs points d'entrée / méthodes principales. Comme je voulais bricoler, j’en ai créé un autre comme celui-ci dans un nouveau type / classe
class MyExperiments
{
static void Main(String[] args)
{
// do something
}
}
puis je suis passé aux propriétés du projet. Basculez simplement l'objet de démarrage sur MyExperiments hein? À ma grande surprise, le menu déroulant ne l'avait pas. J'ai reconstruit, rendu publique la méthode, essayé beaucoup de choses… mais en vain. Enfin, j'ai édité le .csproj manuellement dans le bloc-notes, puis cela a fonctionné. Plus bricoler, j'ai enlevé les paramètres pour le rendre
static void Main()
et maintenant, les propriétés du projet VS peuvent «voir» l’objet de démarrage. Alors maintenant, je pourrais le sélectionner en utilisant le menu déroulant. J'ai ensuite ajouté le String [] à l'arrière et tout fonctionnait encore.
Cela me semble un peu bizarre (car la forme la plus courante est une méthode Main avec des paramètres pour les arguments de ligne de commande des temps C / C ++). MSDN indique que la liste déroulante contiendra un démarrage valide. objets s'ils existent dans votre projet.
La solution
Heureusement que vous l'avez copié-collé, il s'agit du "S" majuscule dans Main (String [] args)
. Apparemment, VS utilise une correspondance de texte et est sensible à la casse. Comme il se doit probablement.
Autres conseils
lol - cela ressemble à un bogue dans l'EDI:
static void Main(String[] args) {}
ne s'affiche pas, mais
static void Main(string[] args) {}
fait!
Mise à jour: Réponse au bogue Connect Feedback /,
Merci pour vos commentaires! Il regarde le Le problème ici est que le " String " paramètre dans la méthode principale doit être une chaîne " en minuscule. (et cela semble avoir été signalé sur votre stackoverflow post). Je vois un suggestion ici pour mettre à jour le projet page de propriété pour être légèrement plus intelligent à propos de ramasser l'objet de démarrage, mais étant donné qu'il y a un raisonnable Contournement, nous allons investir notre ressources pour stabiliser et améliorer performances de VS2010. je vais aller avancez et résolvez le bogue comme un "Wont" Fix " mais s'il vous plaît n'hésitez pas à réactivez le bogue si vous en avez autres questions / commentaires.
Merci, DJ Park C # IDE, Programme Gestionnaire
Cela semble être quelque chose que vous devriez garder en tête pour le moment - Gishu