Question de culture prog vb.net

Résolu
Signaler
Messages postés
130
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
9 juillet 2009
-
Messages postés
130
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
9 juillet 2009
-
Bonjour à tous,
    voila je suis entrain de regarder une source et il y a marqué

            dim arrGameGrid As Rectangle()()
            dim arrGameGridBrushes As SolidBrush()()
            dim arrBrushColours() As SolidBrush

            arrGameGrid = New Rectangle(intGameGridRows)() {}
            arrGameGridBrushes = New SolidBrush(intGameGridRows)() {}
            arrBrushColours = New SolidBrush(5) {}

Et je ne comprend pas à quoi servent les {} lors de l'instanciation. si quelqu'un pouvait m'éclairer se serait cool.

Merci

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Ben je savais pas moi non plus, je découvre.

En direct Live du msdn 2005

<li>Tableaux vides. Il est possible d'utiliser la valeur -1 pour déclarer
la limite supérieure d'une dimension d'un tableau. En d'autres termes, le
tableau est vide mais sa valeur n'est pas Nothing. Cette distinction est
requise par certaines fonctions du Common Language Runtime. Toutefois, le code
Visual Basic ne peut pas accéder à un tel tableau. Si vous tentez d'y accéder,
une erreur <mshelp:link tabindex= "0" keywords="T:System.IndexOutOfRangeException">IndexOutOfRangeException</mshelp:link>
se produit lors de l'exécution. Pour plus d'informations, consultez [48f26d21-0265-4d2b-b291-44bdc5a8ec99.htm Comment : créer un tableau sans
éléments].

</li><li> Initialisation des tableaux. Vous pouvez initialiser les valeurs d'un
tableau en mettant les valeurs d'initialisation entre accolades ({}).

  |
|----
Dim longArray() As Long = {0, 1, 2, 3}

Pour les tableaux multidimensionnels, l'initialisation de chaque dimension
séparée est entourée d'accolades dans la dimension externe. Les éléments sont
spécifiés dans l'ordre ligne-champ.

  |
|----
Dim twoDimensions(,) As Integer = {{0, 1, 2}, {10, 11, 12}}

</li>

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Voilà une bonne question !
Eh bien, ceci :

dim arrGameGrid As Rectangle()()
arrGameGrid = New Rectangle(intGameGridRows)(){}

est une autre méthode pour écrire cela :

Dim arrGameGrid(intGameGridRows)() As Rectangle

c'est à dire pour initialiser un tableau de intGameGridRows éléments, chaque élément étant un tableau vide de Rectangle.
Il faut ensuite initialiser chaque sous-tableau un par un (par une boucle le plus souvent).

L'avantage de la seconde méthode est surtout sans doute de pouvoir séparer la déclaration de la variable de son initialisation (c'est courant pour les types normaux, alors pourquoi pas pour les tableaux de tableaux vides ).

Attention tout de même, je crois me souvenir que ces tableaux de tableaux ne sont pas CLS-compliant. Il ne faut donc pas demander ou retourner ce type de variable pour des fonctions qui peuvent être utilisées par d'autres assemblys (en gros il vaut mieux ne les utiliser qu'en "interne").

A++

<hr width="100%" size="2" />Nurgle (Antoine)
Messages postés
130
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
9 juillet 2009

merci ,
c'est vrai que j'aurai pu chercher sur MSDN en tous cas ce post pourra éclairer d'autres programmateurs merci  casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Oui j'espere que c'est ça, car je ne suis pas capable de dire si j'ai trouvé la bonne réponse.

Les déclarations de Rectangle ... m'étonne un peu, l'intanciation aussi. Mais bon c'est du .net, et pour l'instant j'ai du mal à trouver la volonté de mis plonger sérieusement.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
oups, pardon : c'est "L'avantage de la première méthode..."

<hr width="100%" size="2" />Nurgle (Antoine)
Messages postés
130
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
9 juillet 2009

Merci Nurgle pour cette explication .