Comment Quitter une Méthode sans Quitter le Programme?
Je suis encore assez nouveau pour C# et vais avoir un moment difficile obtenir utilisé à elle par rapport à C/RPC.
Comment quitter une fonction en C# sans quitter le programme comme cette fonction?
if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0)
textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
System.Environment.Exit(0);
Ce ne sera pas permettre à des types de retour et s'il est laissé seul, il va continuer à le faire par le biais de la fonction s'ouvrent. Ce qui est indésirable.
- BTW, on les appelle des "méthodes", pas de "fonctions" ces jours-ci.
- Hein??? C/C++ n'ont
return;
pourvoid
fonctions... - J'ai été à la programmation en C# et d'autres langages OOP pour un bon moment maintenant et j'ai encore les appeler des fonctions. (et je n'ai que 19 ans!)
- peut-être que c'est juste moi, mais je trouve que la plupart des gens qui continuent de dire que la "fonction", ou "routine" ne sais pas OO. Donc, d'entendre quelqu'un dire "fonction" me donne l'impression qu'ils ne savent pas OO.
- Chaque méthode est une fonction, et est également un sous-programme (mais pas chaque fonction ou une sous-routine est une méthode). En tout cas, dans mon langage favori, qu'elle appelle "les fonctions de membre", et c'est ainsi que je les aime! 😉
- une méthode, pour moi, implique d'exploitation dans une instance. Une fonction opère sur ses arguments, indépendamment de si oui ou non il est statique. Une méthode est un sous-cas de fonctions qui opèrent sur un exemple, là où l'instance est le premier argument (implicite ou explicite, en fonction de votre langue).
- Je préfère "méthode d'instance" et de "la méthode statique" ou "méthode de la classe". Les fonctions sont un non-OO concept, et de ne pas se référer à la notion de classe.
- De plus la différence entre la "méthode" et "fonction", c'est comme la différence entre "armure" et "armure" ou "couleur" et "couleur". Il dépend de la façon dont vous le regardez.
Vous devez vous connecter pour publier un commentaire.
Il y a deux façons de sortir d'une méthode tôt (sans quitter le programme):
return
mot-clé.Les Exceptions ne devraient être utilisés que pour des circonstances exceptionnelles, lorsque la méthode ne peut pas continuer et il ne peut pas retourner une valeur raisonnable que l'appelant. Habituellement cependant, vous devez juste retour lorsque vous avez terminé.
Si votre méthode renvoie la valeur nulle alors vous pouvez écrire une restitution sans valeur:
Spécifiquement au sujet de votre code:
Vous devez également utiliser d'accolades, lorsque vous écrivez une instruction if, de sorte qu'il est clair lequel les instructions sont à l'intérieur du corps de l'instruction if:
Si vous êtes en utilisant .NET 4 il existe une méthode utile qu'en fonction de vos besoins, vous pouvez envisager d'utiliser ici: Chaîne de caractères.IsNullOrWhitespace.
de l'Environnement.De retour à la ligne
au lieu de"\r\n"
.string.IsNullOrEmpty
(pré .Net 4 shout-out - qui, bien sûr, ne détecte pas les seules chaînes de caractères). Malheureusement, pas tous d'entre nous peut utiliser 4.0, encore.En plus de Marque de la réponse, vous devez également être conscient de la portée, qui (comme en C/C++) est spécifiée à l'aide de croisillons. Donc:
retournera toujours à ce point. Cependant:
ne reviendra que si elle va dans ce
if
déclaration.Je voudrais utiliser
return null;
pour indiquer qu'il n'existe pas de données à renvoyerSi la fonction est nulle, la fin de la fonction
return
. Sinon, vous devez faire une explicitereturn someValue
. En tant que Marque en dit, vous pouvez égalementthrow
une exception. Quel est le contexte de votre question? Avez-vous un plus grand exemple de code avec lequel vous montrer quelques façons à la sortie de la fonction?@John, Earlz et Nathan. La façon dont je l'ai appris à l'uni est: fonctions des valeurs de retour des méthodes ne le sont pas. Dans certaines langues, la syntaxe est/était en fait différent. Exemple (pas de langue spécifique):
La plupart des langues utilisent maintenant la même syntaxe pour les deux versions, à l'aide de l'annulation d'un type de retour pour dire qu'il n'est pas vraiment un type de retour. Je suppose que c'est parce que la syntaxe est plus cohérent et plus facile de changer de méthode pour la fonction, et vice versa.
Le problème fondamental ici est que vous confondre
System.Environment.Exit
pourreturn
.