Dans mon projet, j'ai plus de deux méthodes principales avec la même signature. L'un est un WinForm et l'autre est la classe Console.
Comment définir n'importe lequel d'entre eux comme point d'entrée.
J'ai déclaré [STAThread]
avant une méthode principale pour définir le point d'entrée, mais cela ne fonctionne pas?
J'utilise Visual Studio Express 2010
Accédez aux propriétés du projet en cliquant avec le bouton droit de la souris sur le projet dans l'explorateur de solutions et en cliquant sur Propriétés. Sur le premier onglet, vous verrez une liste déroulante pour le point d’entrée. Sélectionnez la méthode principale appropriée.
STAThread
ne définit pas le point d'entrée - il oblige le moteur d'exécution à utiliser un appartement à un seul thread pour le thread qui exécute Main.
Comme Josh le dit, vous devez définir l'objet de démarrage dans les propriétés du projet. Si cela ne s'affiche pas dans VS Express, vous devrez peut-être forcer l'affichage des propriétés de construction avancées: Ouvrez Outils\Options et cochez la case "Afficher la configuration de construction avancée" dans Projets et solutions.
Notez que votre application ou doit être une application console ou une application WinForms. Il ne peut être construit qu’en un seul (par configuration, de toute façon). Vous finirez par obtenir une console indiquant au démarrage que vous êtes en tant qu'application WinForms, ou aucune console n'indiquant au démarrage que vous la démarrez en tant qu'application console.
Avez-vous envisagé de placer la majeure partie de la logique dans une bibliothèque de classes, puis de créer deux applications wrapper (une WinForm et une console) qui affichent simplement l'interface utilisateur appropriée, puis déléguées à la bibliothèque de classes?
Si le programme dispose de deux méthodes principales, le compilateur obtient confution, alors exécutez le programme c #, mettez la classe principale, donnez
public Class one
{
public static void main()
{
System.console.writeline("One");
}
public Class two
{
public static void main()
{
System.console.writeline("Two");
}
}
exécuter C # dans la console
CSC Multimain.cs/main: one
CSC Multimain.cs/main: deux
Vous pouvez placer une méthode Main dans chaque classe que vous déclarez. Certains programmeurs en profitent pour créer une petite application de test dans chaque classe déclarée.
Toutefois, si vous déclarez plus d'une méthode principale parmi les classes de votre projet, vous devez indiquer à la IDE laquelle vous souhaitez associer le point d'accès. Faire cela:
Vous pouvez mettre plus d'une méthode principale dans un seul programme, mais un programme avec une méthode principale sera compilé à la fois, par exemple: Copier collez ce code dans l'éditeur et changez le nom Relâchez-le en première ligne et voyez le changement.
#define Release
using System;
class Program
{
#if Release==true
public static void Main(string[] args) //for enemy
{
Console.WriteLine("go to hell");
Console.ReadLine();
}
#Elif Release==false
static void Main(string[] args) //for friend
{
Console.WriteLine("hello ");
Console.ReadLine();
}
#endif
}
vous pouvez également le faire de cette manière mais je ne sais pas comment définir quelle méthode principale sera le point d'entrée
public static void Main(string args)
{
Console.WriteLine("this is second main method");
}
public static void Main(string[] args)
{
Program.Main("second main method");
}
1. Ouvrez la solution 2 divisez les deux classes en fichiers de classe distincts. 3. Cliquez sur l'onglet "Projet" de la barre de menus principale. 4. Déplacez le curseur sur la propriété. 5. Sélectionnez la classe souhaitée. nom que vous vouliez exécuter pour "Chemin de référence" 6. Compilez le projet, l’erreur sera résolue.