C# - Comment appeler une méthode static void main
J'ai un code en static void main, bien que je le voudrais appeler l'startremdup méthode (comme il appelle la RemoveDuplicate, avec les paramètres appropriés) à partir de static void main, j'ai essayé startremdup();
private void RemoveDuplicate(string sourceFilePath, string destinationFilePath)
{
var readLines = File.ReadAllLines(sourceFilePath, Encoding.Default);
File.WriteAllLines(destinationFilePath, readLines.Distinct().ToArray(), Encoding.Default);
}
private void startremdup(object sender, EventArgs e)
{
RemoveDuplicate("C:\test.txt", "C:\test2.txt");
}
Ces méthodes sont-elles dans la même classe que votre méthode principale?
Vous ne pouvez pas appeler une méthode d'une instance à partir d'une méthode statique sans d'abord créer une instance de la classe à laquelle elle appartient. Essayez de créer une instance de la classe, c'est à dire
Aussi, ce que vous êtes de passage dans l'objet et EventArgs params à votre startremdup méthode?....et aussi....startremdup est un terrible nom de la méthode...il serait plus clair si vous avez tout simplement appelé le RemoveDuplicate() la méthode plutôt que l'enveloppant dans un obscurément méthode nommée.
Je suppose que le startremdump est appelé sur un événement (comme un clic sur un bouton), d'où l'expéditeur et le eventargs paramètres, qui sont nécessaires pour la base de gestionnaires d'événements dans C#.
Il dit qu'il l'appeler à partir de sa méthode principale. haussement d'épaules
Vous ne pouvez pas appeler une méthode d'une instance à partir d'une méthode statique sans d'abord créer une instance de la classe à laquelle elle appartient. Essayez de créer une instance de la classe, c'est à dire
SomeClass sc = new SomeClass();
, où startremdup
et RemoveDuplicate
font partie de SomeClass
, puis accéder aux méthodes via SomeClass
, c'est à dire sc.startremdup();
. Alternativement, si elles font partie de la classe statique, vous avez besoin d'une étiquette sur les méthodes statiques.Aussi, ce que vous êtes de passage dans l'objet et EventArgs params à votre startremdup méthode?....et aussi....startremdup est un terrible nom de la méthode...il serait plus clair si vous avez tout simplement appelé le RemoveDuplicate() la méthode plutôt que l'enveloppant dans un obscurément méthode nommée.
Je suppose que le startremdump est appelé sur un événement (comme un clic sur un bouton), d'où l'expéditeur et le eventargs paramètres, qui sont nécessaires pour la base de gestionnaires d'événements dans C#.
Il dit qu'il l'appeler à partir de sa méthode principale. haussement d'épaules
OriginalL'auteur Michael | 2011-06-17
Vous devez vous connecter pour publier un commentaire.
Faire à la fois
startremdup()
etRemoveDuplicate()
statique.OriginalL'auteur Bala R
startremdup
est un instance méthode. Cela signifie que vous devez appeler une instance de quelle classe il est. Par exemple:Personnellement, il semble que ça devrait être une méthode statique pour commencer - et, de préférence, avec un plus raisonnable de nom, mais c'est pourquoi il ne travaille pas dans le temps.
Si j'étais vous, je voulais vraiment me mettre en bas de votre tâche en cours et de ramasser une bonne introduction C# livre - apprendre la différence entre le statique et les membres de l'instance, etc.
OriginalL'auteur Jon Skeet
Faire vos méthodes
static
.OriginalL'auteur Jerad Rose
startremdup et removeduplicate besoin d'être déclarée static si vous appelez à partir d'une méthode statique (comme le Main())
OriginalL'auteur therealmitchconnors
Vous ne pouvez pas appeler les méthodes non statiques à partir d'une méthode statique, sauf si vous les appeler sur un objet de référence. Vérifier cette.
OriginalL'auteur Coeffect
Vous devez vous faire à la fois de ces méthodes statiques, ou de créer une instance de votre
Main
classe et appeler la méthode.OriginalL'auteur Justin Simon
Déclarer
private static void startremdup(object sender, EventArgs e)
depuis méthode statique ne peut pas appeler les méthodes d'instance parce qu'ils n'ont pasthis
.OriginalL'auteur Felice Pollano