Question de culture prog vb.net

Résolu
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009 - 1 sept. 2006 à 18:58
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009 - 6 sept. 2006 à 09:39
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 sept. 2006 à 19:14
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 #
3
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 3
2 sept. 2006 à 23:03
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)
3
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009
1 sept. 2006 à 19:18
merci ,
c'est vrai que j'aurai pu chercher sur MSDN en tous cas ce post pourra éclairer d'autres programmateurs merci  casy
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 sept. 2006 à 19:23
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 #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 3
2 sept. 2006 à 23:06
oups, pardon : c'est "L'avantage de la première méthode..."

<hr width="100%" size="2" />Nurgle (Antoine)
0
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009
6 sept. 2006 à 09:39
Merci Nurgle pour cette explication .
0
Rejoignez-nous