0

Je suis nouveau sur Vb-script et je dois créer une fonction (mot-clé) qui nécessite un grand nombre de param mais l'utilisation de paramètres optionnels n'est pas autorisée dans Vb-script.Paramètres facultatifs dans VBscript

J'ai fait quelques recherches sur le web et j'ai remarqué que je pouvais utiliser un tableau d'arguments ou un dictionnaire d'objets. Je veux savoir dans quel cas il est préférable d'utiliser l'argument array et quand je dois utiliser Dictionary. Aussi, est-il facile d'ajouter param à mes arguments de fonction dans chaque cas?

Répondre

0

Je vous recommande de créer une classe pour tous vos paramètres et de passer une seule instance de cette classe. C'est une mauvaise conception d'avoir des méthodes avec un grand nombre de paramètres, et si vous utilisez un tableau, c'est moins robuste, car vous devrez toujours compter pour savoir dans quel index votre param est. Avec une classe, tous vos "paramètres" seront nommés champs ou propriétés.

Voici un exemple simple de ce que je parle:

Dim cfg : Set cfg = New CarConfig 

With cfg 
    .MakeName = "Ford" 
    .ModelName = "Escort" 
    .StyleName = "2-Door" 
    .ColorName = "Blue" 
    .NumWheels = 4 
End With 

Call BuildCar(cfg) 

Sub BuildCar(usingConfig) 
    With usingConfig 
     Call MsgBox("Your " & .ColorName & " " & _ 
      .StyleName & " " & .MakeName & " " & _ 
      .ModelName & " has: " & _ 
      cfg.NumWheels & " wheels.") 
    End With 
End Sub 

Class CarConfig 
    Public MakeName 
    Public ModelName 
    Public NumWheels 
    Public ColorName 
    Public StyleName 
End Class 
+0

Oui, je pense aussi à utiliser une classe pour encapsuler tous mes paramètres et de créer un add_paramater de méthode et de l'appeler à chaque fois que j'ai besoin pour ajouter un paramètre à cette classe que pensez-vous s'il vous plaît? – sourh

+0

Eh bien, ce que je voulais dire, c'est que vous créiez une classe qui a un ensemble statique de propriétés nommées, pas une collection de paramètres. Autrement, vous devrez adresser vos paramètres par nom, et si le nom de votre paramètre change et vous oubliez de changer la valeur de chaîne adressant votre paramètre? Cela pourrait conduire à des bugs et donc ce n'est pas aussi robuste. –

+0

vous avez raison, je pensais avoir une classe avec une collection de paramètres et ou chaque param j'ai un getter et un setter mais je n'ai pas pensé à ce cas si je change le nom d'un param. Donc, pourriez-vous s'il vous plaît donner plus de détails sur comment puis-je utiliser un ensemble statique de propriétés nommées parce que je suis nouveau à VBS.Si vous pouvez s'il vous plaît donnez-moi un exemple. – sourh