2017-08-29 3 views
-3

Ceci n'est pas important. Je me demandais. Merci d'avance pour votre aide.C# Méthode récursive Paramètre

void AddAccount(string name, string surname, DateTime age, string phone, string username, string pwd) 
{ 
    // Codes... 
    // I want to call this method again. 
    // This a example. 


    if(Msg("Registration is available. Add it again.")) 
     AddAccount(name, surname, age, phone, username, pwd); 
} 

Y at-il une méthode qui prend automatiquement des paramètres à la place?

Je sais que je peux le faire différemment. Mais je me demandais juste l'existence d'une telle syntaxe.

+0

Vous devriez poser votre question dans le texte, pas dans le code. Puis fournissez un exemple de code pour le contexte ou l'exemple. –

+0

Votre question est très floue. Que demandez-vous exactement? – Igor

+0

Vous montrez déjà un exemple de récursivité, mais il fonctionnera pour toujours (enfin, jusqu'à ce que vous obteniez une 'StackOverflowException'). Normalement, si vous voulez un appel récursif, vous aurez une condition que vous vérifiez qui, à un certain point, arrêtera la récursivité. Qu'essayez-vous de faire? –

Répondre

1

Je pense que ce que vous cherchez est un raccourci pour éviter de spécifier à nouveau les paramètres:

void AddAccount(string name, string surname, DateTime age, string phone, string username, string pwd) 
{ 
    // Codes... 
    // I want to call this method again. 

    // Is there a method that automatically takes parameters instead? 
    AddAccount(params); 
} 

Une telle syntaxe existe en C#. Une alternative serait de créer un type de paramètres:

private struct Person 
{ 
    public string Name; 
    public string Surname; 
    public DateTime Age; 
    public string Phone; 
    public string Username; 
    public string Password; 
} 

alors vous pourriez avoir une surcharge privée qui prend la classe param:

void AddAccount(string name, string surname, DateTime age, string phone, string username, string pwd) 
{ 
    Person person = new Person 
    { 
     Name = name, 
     Surname = surname, 
     Age = age, 
     Phone = phone, 
     Username = username, 
     Password = password 
    } 
    AddAccount(person); 
} 

private void AddAccount(Person person) 
{ 
    // Codes... 

    // I want to call this method again. 
    AddAccount(person); 
} 
+0

Merci pour votre réponse. C'est plus long mais une solution pour réécrire ces paramètres. Je voulais apprendre à réduire la complexité du code. Merci d'apprendre qu'il n'y a pas un tel mot. – Emre

+0

Un autre avantage est qu'il permet une meilleure sécurité de type. Vous pouvez facilement changer les paramètres 'name' et' surname' dans le second appel et le compilateur ne se plaindra pas, mais vous aurez évidemment des problèmes lors de l'exécution. –

+0

Je vais l'utiliser dans certains endroits. Je vous remercie. @D Stanley – Emre