Je sais que vous pouvez facilement passer un tableau à une fonction, comme le code ci-dessous indique
SomeFunction({"some", "array", "member"}) ' This obviously gives a syntax error
4 Réponses :
non; Il n'y a pas de tableau constant dans CLI; Les tableaux sont toujours mutables. Peut-être un Readonlycollection
serait être approprié?
en C # (donc probablement similaire à VB), vous pouvez faire quelque chose comme: p> qui vous donne un statique (= partagé) non modifiable, -La collection utilisable. Cela fonctionne surtout si la méthode accepte ilist
ienumerable
t [] code>) . p> p>
+1 Peut-être qu'un ienumerable
@Andrew; J'étais juste édité pour ajouter cette suggestion très suggestion (ou
IEnumerable
Le plus proche que vous puissiez faire est:
SomeFunction(New String() {"some", "array", "members"})
Oui, je l'ai inscrit aussi bientôt Patrick McDonald posté son poste. Mais je voulais m'assurer et l'avoir testé avant de répondre à la question moi-même. Merci à tout le monde d'avoir répondu.
Je pensais pour une raison pour une raison sombre comme string () = {"A", "B", "c"} ne fonctionnerait pas et supprimé ma réponse quand j'ai trouvé cela, bien fait pour avoir appris exactement ce que l'OP avait demandé . :)
Une autre chose que je viens de penser à cela ne répond pas directement à la question, mais peut-être à l'intention de l'affiche - le mot clé PARAMARRAY. Si vous contrôlez la fonction que vous appelez, cela peut rendre la vie beaucoup plus facile.
Public Function MyFunction(ByVal ParamArray p as String()) ' p is a normal array in here End Function ' This is a valid call MyFunction(New String() {"a", "b", "c", "d"}) ' So is this MyFunction("a", "b", "c", "d")
SomeFunction({"some", "array", "member"}) ' this obviously gives a syntax error This is a perfectly valid syntax starting with VB10 (Visual Studio 2010). See this: New Features in Visual Basic 10, under Array Literals.