0
votes

Impossible de retourner la chaîne de la fonction pendant la fonction

J'essaie d'analyser les données de la base de données MARIADB MYSQL, mais j'ai un problème lorsque j'essaie de retourner du code. La chaîne statique publique donnée ci-dessous fonctionne parfaitement, je veux juste utiliser des données analysées dans une autre classe, mais chaque fois que le code passe tandis que (RDR.Read ()) fonction, String OTP disparaît.

J'ai également essayé de déplacer Code de retour en dehors du pendant que Bretelles de fonction, mais je reçois ensuite l'erreur suivante:

"Le nom" code "n'existe pas dans le contexte actuel".

mon code: xxx

merci d'avance.


4 commentaires

Sur quelle ligne obtenez-vous le message d'erreur du code ci-dessus?


Salut Steve. Je n'ai pas eu d'erreur sur le code donné ci-dessus. Tout ce que je veux faire, c'est utiliser un code de chaîne dans une autre classe, mais chaque fois que le code passe pendant la boucle, le code de la chaîne n'est pas retourné, il disparaît simplement :(


Vous le retournez, sa valeur ne disparaît donc pas, il vous suffit de recevoir la valeur de retour de TestCode et d'attribuer à une autre variable locale. Comme string anewcode = testcode (); if (! string.isnullorempty (AnoWcode)) {.....}


Au fait, si le compilateur vous donne une erreur, il vous indique également où l'erreur se produit. Si vous ne postez pas le code où avez-vous l'erreur, alors que vos questions remplissent exactement la raison ferme non exemple de reproductible minimal donné


3 Réponses :


-1
votes

Vous devez définir code de chaîne; avant pendant boucle, pas à l'intérieur.


11 commentaires

Bien que ce ne soit pas un mauvais conseil général, cela n'explique pas cette erreur de compilateur dans le moins.


J'ai essayé de cette façon, mais j'obtiens alors une erreur d'un code de variable local non attribué


@Christopher - Il explique "J'ai également essayé de déplacer un élément de code de retour en dehors des accolades de fonction tandis que". Si seulement retour a été déplacé, c'est l'erreur.


En outre, si vous voulez revenir à la première boucle, pourquoi utiliser du tout?


Compiler vous dit exacer ce que c'est un problème - c'est une question de variables variable. Les variables définies à l'intérieur des boucles, des usings, de l'enfance etc. ne peuvent être vues qu'à l'intérieur d'eux, pas à l'extérieur. Vous devez les définir à l'extérieur. Ensuite, lorsque vous définissez-le à l'extérieur, vous devez simplement l'initialiser à l'initialisation = peut-être var code = string.empty;


@Misiakw Toutes les variables de portée de la fonction fonctionnent hors de portée après le retour. Donc ce n'est pas "ça".


Je suppose que le seul problème est le seul problème qui ne sait pas comment utiliser une valeur de retour et essaie d'utiliser directement le code de variable d'une autre méthode.


@Steve: Il déclare et attribue la variable "code" dans les 2 lignes avant le retour. C'est dans la portée.


@Christopher Il a défini le code à l'intérieur, et il a dit qu'il voulait le déplacer dehors - il voulait donc le déplacer à l'extérieur de sa portée.


Oui, mais je suppose, étant donné l'erreur et les commentaires de l'OP au-dessus qu'ils écrivent code = testcode (); ou quelque chose en utilisant le code dans le code de l'appelant.


J'ai supprimé le code de chaîne annoncé en dehors des accolades et utilisé dans un autre code comme résultat String = TestCode (); @steve et @bartark Merci pour vos allusions, tu m'as aidé beaucoup



0
votes

SharPLAB n'a aucun support pour les classes SQL, mais ceux qui ne devraient pas être de toute façon. Je poinçonné ce code dans SharpLab et il compile, mis à part de l'avertissement attendu (retour nul défaillable): xxx

qui ne laisse qu'une seule conclusion: ce n'est pas la ligne qui cause le problème.

Quelque chose d'autre a déclenché le compilateur. Et cela le trébuché si mal, il ne peut même pas vous dire où le problème est plus . Veuillez corriger tous les autres problèmes de votre code.


0 commentaires

-1
votes

Comme je l'ai mentionné dans le commentaire - vous devriez en savoir plus sur les gammes de variables. Celui défini à l'intérieur de Lambda, WHILES, USINGS, IFS, etc ... ne sont qu'accepsibles là-bas, pas à l'extérieur. C'est pourquoi si vous voulez les avoir à l'extérieur - vous devez les définir à l'extérieur. De plus, vous devez en quelque sorte initialiser. Essayez le code suivant: xxx


0 commentaires