OVH Cloud OVH Cloud

Declaration Dim as String

15 réponses
Avatar
phil.chappuis
Bonjour,

Je débute avec .Net et je cherche des explications sur la différences
entre ces 2 déclarations, que l'on peut trouver dans des exemples
Microsoft :

Dim s as string()

et Dim s() as string

La première forme est par exemple utilisée dans l'exemple de
GetDateTimeFormats :

Dim d as DateTime = Now()
Dim s as String()=d.GetDateTimeFormats()

Merci de m'aider

5 réponses

1 2
Avatar
LE TROLL
La vache Jacques, tes fort, qu'est-ce que tu manges pour en
savoir autant, sont-ce des endives cuites ?
:o)
--------

"Jacques" a écrit dans
le message de news:
ng a écrit :
Essaie ceci:

Dim s() as String

s(1)="COUCOU"

=> pas de chance :-)





bah oui mais dans ce cas on mets un redim :)



Et pour compléter :

Dim s(10) as string
en tenant compte de Option Base pour le premier indice
ou
Dim s(1 To 10)
ou
Dim s(0 To 9)
pour les adeptes du C où les tableaux commencent à 0
:-)

quand on connait par avance la taille du tableau, sinon

Dim s() as String

Redim s(10)

Redim Preserve s(UBound(s)+1)
pour conserver les valeurs déjà entrés dans le tableau

Et

For i = LBound(s) To Ubound(s)

pour parcourir le tableau sans risque de se planter sur
l'indice de départ et de fin

Mais je dois certainement oublier des trucs :-)


--
Cordialement,

Jacques.


Avatar
ng
> Mais je dois certainement oublier des trucs :-)





Oui on pourrais parler du redim, lbound, ubound multidimension

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
Jacques
ng a écrit :
Mais je dois certainement oublier des trucs :-)






Oui on pourrais parler du redim, lbound, ubound multidimension




Surtout pas, ça pourrait attirer les endives ... :-D

--
Cordialement,

Jacques.
Avatar
Philippe Chappuis
Bonsoir et merci de toutes ces interventions

- Ma question portait plutôt sur la nature profonde de la différence entre
les 2 déclarations, liée "au tout objet" de .Net, plutôt que sur la question
de la déclaration de la taille des tableaux.


Dim s As String()
...
s(0) = "x" fait erreur d'execution 'pas d instance pour cet objet'

alors que

Dim s As String() = {"x","y"}
...
Console.WriteLine(s(0)) passe sans problème

Comme si l'initialisation dans la déclaration créait une instanciation, qui
n'a pas lieu sans cela.

Et même punition pour d'autres types (integer, long, ...)

Je n'ai rien trouvé sur MSDN à ce sujet, ni d'aiileurs dans le manuel de
référence (Balena)

Bonne soirée
Avatar
Jean-Marc
"Philippe Chappuis" a écrit dans le message de
news:
Bonsoir et merci de toutes ces interventions

- Ma question portait plutôt sur la nature profonde de la différence entre
les 2 déclarations, liée "au tout objet" de .Net, plutôt que sur la


question
de la déclaration de la taille des tableaux.


Dim s As String()
...
s(0) = "x" fait erreur d'execution 'pas d instance pour cet objet'

alors que

Dim s As String() = {"x","y"}
...
Console.WriteLine(s(0)) passe sans problème

Comme si l'initialisation dans la déclaration créait une instanciation,


qui
n'a pas lieu sans cela.

Et même punition pour d'autres types (integer, long, ...)

Je n'ai rien trouvé sur MSDN à ce sujet, ni d'aiileurs dans le manuel de
référence (Balena)



Hello,

en fait le mieux est sans doute que tu ailles
demander sur le groupe dédié à dotnet, qui se
trouve ici:
microsoft.public.fr.dotnet.vb

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
1 2