[VB.NET] UN TABLEAU COMME ARGUMENT OPTIONNEL

Résolu
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 23 août 2008 à 13:55
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 23 août 2008 à 18:01
Salut,

Encore novice en .NET, je souhaite avoir un tableau comme argument optionnel dans une fonction ou procédure.

Le problème est qu'en .NET on doit obligatoirement spécifier une valeur par défaut aux arguments optionnels et que je ne sais pas quelle peut bien être cette valeur par défaut.

Ex : Public Sub MaProc (Optional ByRef MonTab() As String = ???)

Que dois-je mettre à la place des ???

Merci d'avance

Bonne prog
++

6 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
23 août 2008 à 17:55
Bonjour,
En .NET on n'utilise plus trop les paramètres optionels car il est possible de déclarer plusieurs fois une méthode avec des paramètres différents (overloading)  :

 Public Sub Méthode(ByVal Value As String)
        Dim files() As String = {"C:\File.dat"}
        Méthode(Value, files)
End Sub

Public Sub Méthode(ByVal Value As String, ByVal FileToSave() As String)

End Sub
3
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
23 août 2008 à 14:36
le maximum pour que ça ne plante pas (overflow)

à l'utilisation tu rectifies le tir

ou tu as la possibilité de faire l'inverse mais alors faut vraiment rectifier le tir à l'utilisation

 

Bonjour chez vous !
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
23 août 2008 à 14:49
Salut,

Désolé mais je ne comprends pas ta réponse. Concretement que mettre à la place des ???

Peux-tu me donner un exemple ?

Bonne prog
++
0
Profil bloqué
23 août 2008 à 14:55
Salut bouv

En vérité ce n'est point le paramètre lui- même qui est optionnel mais c'est le fait de lui attribuer une valeur

soit une sub déclarée ainsi

Private sub Masub( Optional ByRef A as Integer = 0)

Je peux l'appeler par Masub(15) ou Masub()
Ce n'est pas A qui est optionnel : c'est le fait de donner à A soit une valeur à l'appel soit une valeur optionnelle par défaut

Si ton tableau est déclaré au niveau de la feuille il ne sert à rien de le passer en paramètre optionnel à ta fonction
sinon as-tu testé Public Sub MaProc (Optional ByRef MonTab(0) As String "xxx',Optional ByRef MonTab(1) As String "yyy",etc ) si le tableau n'est pas trop long bien sûr ?

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0

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

Posez votre question
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
23 août 2008 à 17:26
Salut Galain,

Merci pour la leçon mais ce n'est qu'en VB.Net que je débute. Tout ceci est bien clair pour moi.

Sinon, j'ai bien essayé : Optional
ByRef FilesToSave (0)
As
String = 
"xxx'. Mais il semble que l'on ne puisse pas déclaré la taille du tableau ici.

J'ai également essayé : Optional
ByRef FilesToSave ()
As
String = {
"0"}.
Mais sans succès.

Avez-vous une autre idée ?

Bonne prog
++
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
23 août 2008 à 18:01
Kevin.Ory >> Pourquoi n'y ai-je pas pensé avant ???

C'est une technique que j'ai pourtant déjà utilisé. Je n'ai pas encore tout les reflexes d'un bon 'DotNeteur'.

Merci à toi. Et aux autres pour avoir essayé de m'aider.

Bonne prog
++
0
Rejoignez-nous