De classe C# sans méthode main
Je suis en train d'apprendre le C# et je suis très nouveau pour elle, alors pardonnez-moi pour l'apparemment stupide question. J'ai une certaine expérience en Java, et j'ai remarqué que C# programmes ont également besoin d'un main()
méthode dans sa classe principale.
Ce que si je veux créer une classe qui n'est pas une classe principale, c'est à dire que je l'importer dans une classe principale?
J'ai essayé de le faire, et quand je compile (via cmd à l'aide de csc File.cs
) le compilateur dit que l' .exe qu'il fera a pas de main()
méthode. Est-ce à dire que je me trompais, et chaque les besoins de la classe un main()
méthode, ou que je compile il tort?
Peut-être que le problème est dans le code (depuis que je suis en s'appuyant sur ma connaissance de la syntaxe Java), qui ressemble à ceci:
public class Class
{
int stuff;
public Class(int stuff)
{
this.stuff = stuff;
stuff();
}
public void method()
{
stuff();
}
}
EDIT: je crains que cela est terriblement mal compris. Je ne demande pas si le fichier a besoin d'une méthode main, je me demande comment je peux importer cette classe dans une autre classe, car je me rends compte que si je suis pour ce faire, je ne peux pas avoir une main (comme je l'ai dit, j'ai quelques Java de l'expérience), mais à chaque fois que j'essaie de compiler sans le compilateur me dit que j'en ai besoin.
Je pense que
Class
est un mot réservé. Quelles sont vos attentes de stuff();
? Si c'est l'exemple de code que vous devez poster votre code réel.stuff(); n'est pas valide en référence à votre code, trucs(); est l'appel d'une méthode , alors que vous avez déclaré qu'un nombre entier!
Ne vous méprenez pas sur la question complètement et se plaignent de la sémantique de l'exemple de code qui n'est pas destiné à faire du sens.
Class
n'est pas un mot clé réservé. class
est..OriginalL'auteur Bluefire | 2013-02-04
Vous devez vous connecter pour publier un commentaire.
Pas toutes les classes ont besoin
Main
méthode.Comme MSDN États
Une seule classe le besoin de garder le
Main
méthode, la classe qui sert de point d'entrée de l'application.La signature de la méthode principale est :
static void Main(string[] args)
oustatic void Main()
oustatic int Main(string[] args)
oustatic int Main()
Consultez ce lien pour plus de détails :
Main() et les Arguments de Ligne de Commande (Guide de Programmation C#
)Pour votre exemple ci-dessus:
Si vous avez besoin de l'utilisation de cette classe, vous pouvez créer une classe statique avec la méthode main:
static int Main(string[] args)
ai-je raté quelque chose ou dit-il erroné?
Je ne suis pas le downvoter (en fait, je upvoted), mais je voudrais suggérer l'orthographe de vos mots. I. e., au lieu d'utiliser "u", il sort "vous". Même si vous n'avez pas de soins sur une bonne grammaire, ce qui produit une recherche de réponse.
a noté monsieur!
Class
n'est pas un mot clé réservé.class
est..OriginalL'auteur PaRiMaL RaJ
Dans ce scénario, vous avez besoin d'au moins une classe dans votre code avec le
Main
méthode. Les autres classes n'ont pas besoin de laMain
méthode.OriginalL'auteur chue x
C# application doit avoir au moins une classe avec une méthode main, de sorte que l'exécution peut commencer à partir. L'Application peut avoir beaucoup de classes, mais d'une classe unique, avec une seule méthode main est nécessaire.
C# bibliothèque ne pas disposer d'une méthode main.
OriginalL'auteur Dialecticus
Si c'est une application console, vous avez besoin d'une méthode Principale pour commencer. Dans le cas contraire (application web, par exemple), vous n'en avez pas besoin.
OriginalL'auteur Robert
Essayez d'utiliser
/t:library
commutateur avec le compilateur. Par défaut, il essaie de faire une.exe
qui, bien sûr, besoin d'un point d'entrée (c'est à dire unmain
méthode). Si vous compilez à un.dll
vous n'aurez pas besoin de cela.Mais comme HighCore suggéré, si vous êtes d'apprentissage, il suffit d'utiliser Visual Studio (télécharger une des versions gratuites si vous ne l'avez pas déjà fait) et laissez-il s'inquiéter de l'drapeaux du compilateur.
OriginalL'auteur Matt Burland
Vous avez seulement besoin d'un
main
méthode lorsque vous générez un fichier exécutable de l'assemblée (.exe), vous n'aurez besoin que dans une seule classe. Cette méthode sera la valeur par défaut du point d'entrée où le démarrage de l'exécution. Vous n'avez pas besoin d'unmain
méthode lorsque vous générez votre code comme une bibliothèque de classes (.dll).OriginalL'auteur Botz3000
Une seule classe avec une méthode doit être fine. Si vous le souhaitez, vous pouvez configurer le démarrage de l'objet dans visual studio, dans les paramètres.
OriginalL'auteur kittu
De classe C# sans Main (), vous pouvez le compiler en tant que bibliothèque (.dll)
csc /cible:bibliothèque YourClassFileName.cs ou csc /t:library YourClassFileName.cs pour le rendre aussi YourClassFileName.dll fichier et ensuite vous pouvez l'utiliser dans un autre fichier de classe qui ont la méthode main () (point d'Entrée)
csc /référence:YourClassFileName.cs YourMainClassFileName.cs
ou
csc /r:YourClassFileName.cs YourMainClassFileName.cs
de faire un YourMainClassFileName.exe fichier
OriginalL'auteur Abdul Karim Siddiqui
static void main(string[] args)
méthode en C# des programmes est le point de départ pour l'exécuter. Si vous essayez de compiler un seul Fichier C#, le compilateur va trouver cette méthode pour démarrer l'exécution. Vous n'avez pas besoin de créer de la méthode dans une classe, vous utilisez comme un modèle, mais vous devez avoir de cette méthode sur un Programme de Console, WinForms, etc...OriginalL'auteur Felipe Oriani