web-dev-qa-db-fra.com

Plus de deux méthodes principales dans l'application Visual Studio?

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

19
PawanS

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.

33
Josh

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?

8
Jon Skeet

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

  • Sortie un

CSC Multimain.cs/main: deux

  • Sortie deux
4
Senthil

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:

  1. Le projet étant ouvert dans Visual Studio, sélectionnez Projet> Propriétés [Nom du projet]} ... (où [Nom du projet] est le nom de votre projet).
  2. Sélectionnez la classe contenant la méthode Main qui doit être le point d'entrée dans la zone de liste Objet de démarrage.
1
Nermien Barakat

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 
}
0
piyush sharma

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");
   }
0
Adiii

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.

0
Shirley