Y a-t-il un moyen de donner une valeur à plusieurs variables (entiers dans ce cas), au lieu de tous à la fois? P>
Par exemple, j'ai Comment puis-je faire cela? Merci. P> Dim Aceval, Twoval, TOVAL, FOURVAL, CINCEVAL, SIXVAL, LEVIVAL, POIVAL, NINIVAL, TENVAL EN INTEGER CODE> et, Sélection de la liste de liste en attente, j'aimerais attribuer troisval FOURVAL et SIXVAL Toutes les valeurs de -1. p>
9 Réponses :
Je ne veux vraiment pas être un imbécile, mais y a-t-il une raison pour laquelle vous ne pouvez pas simplement faire:
threeVal = -1 fourVal = -1 sixVal = -1
J'ai environ soixante variables différentes. C'est juste un exemple.
Ah. Vous devriez dire ça alors. Mais pourquoi avez-vous soixante variables différentes?
soixante différentes valeurs distinctes. Oui, douleur dans le cul. Pensez-vous que je peux juste aller ligne par ligne sur celui-ci.
Le désir de lisibilité et de robustesse sont de fortes raisons de ne pas utiliser ce modèle.
Il n'y a aucun moyen dans vb.net pour les assigner tous sur une ligne comme troisval = quatreval = sixval. P>
Si vous avez besoin de toutes ces variables, une ligne à la fois est la voie. Je suggérerais si -1 va être utilisé beaucoup, puis créer une constante pour cela et assigner la Var à la constante. P>
J'envisagerais également d'utiliser un tableau ou une collection pour stocker toutes vos valeurs si possible et travaillez avec eux afin de définir / récupérer leurs valeurs. Vous n'aurez alors pas à avoir 60 variables jointes dans votre code. Tableau et / ou collection serait un peu plus propre. P>
Cette réponse, ou d'autres réponses suggérant d'utiliser un tableau, doit en fait être la réponse acceptée, car c'est la solution pratique! (Eh bien, l'utilisateur Jake n'existe même plus, alors ...)
Vous pouvez utiliser un tableau / dictionnaire comme SO:
upDateMyValues({"FirstVal", "ThirdVal"}, -1);
Vous pouvez déclarer et attribuer la valeur à l'aide du constructeur:
Dim str1, str2, str3, str4 As New String("asdf") Dim int1, int2, int3, int4 As New Integer
Je sais que c'est un vieux fil, mais je viens de courir dans un problème similaire moi-même - voici comment je l'ai fait (je ne traite que 4 valeurs Ceci peut être Facilement adapté, en faisant la première variable de la valeur requise (ce code a également l'air un peu DAFT, car je dois fournir une valeur par défaut qui ne peut être vraie ou fausse, mais évidemment avec des entiers ou quelque chose qu'il semble plus significatif.) P> p>
Vous pouvez essayer comme ceci: Suivez également ce message: http://www.informit.com/library/content.aspx?b=net_2003_21days&eqnum=95 p> p>
Vous pouvez la mettre dans la liste et utiliser pour chaque méthode Voici le code
Dim aceVal, twoVal, threeVal, fourVal, fiveVal, sixVal, sevenVal, eightVal, nineVal, tenVal As Integer Dim var As New List(Of Integer) From {threeVal, fiveVal, sixVal} 'you can add more variable here For Each n As Integer In var n = -1 Next
Je pensais que la fonctionnalité de mission multiple était Attribuer code>) pour faire la même chose. La sémantique est assez facile à suivre; Vous venez d'appeler
assigner code> sur n'importe quelle valeur pour l'attribuer à plusieurs autres variables.
I.e.
Imports System.Runtime.CompilerServices
Namespace Utility
Public Module MultiAssignExtensionMethod
' Multiply assign the same value to 1 (required) or more variables
<Extension()> _
Public Function Assign(Of T)(this As T, ByRef first As T, Optional ByRef second As T = Nothing, Optional ByRef third As T = Nothing,
Optional ByRef forth As T = Nothing, Optional ByRef fifth As T = Nothing, Optional ByRef sixth As T = Nothing,
Optional ByRef seventh As T = Nothing, Optional ByRef eighth As T = Nothing, Optional ByRef nineth As T = Nothing,
Optional ByRef tenth As T = Nothing) As T
' I would LIKE to do this as a ParamArray, but it doesn't allow references for basic types....grrr
first = this
second = this
third = this
forth = this
fifth = this
sixth = this
seventh = this
eighth = this
nineth = this
tenth = this
Return this ' For use as assignment and evaluation as Function parameter
End Function
End Module
End Namespace
Si vous voulez le garder sur une ligne, vous pouvez le faire comme ceci
Et en utilisant INFER OPTION, vous pouvez utiliser DIM M1 = "FALSE", M2 = "FALSE", M3 = "FALSE" CODE>
+1 pour traiter avec soixante variables différentes. Je me sens généreux.
Je réalise que Jake est passé depuis longtemps, mais pour les futurs lecteurs. Jake devrait sérieusement examiner s'il a vraiment besoin de 60 variables, ou plutôt une matrice ou une collection contenant 60 éléments.