0

Я новичок в Vb-скрипте, и мне нужно создать функцию (ключевое слово), для которой требуется большое количество параметров, но с использованием необязательных параметров в Vb-скрипте не разрешено.Необязательные параметры в VBscript

Я сделал несколько исследований в сети, и я заметил, что могу использовать словарь аргументов или объектов. Я хочу знать, в каком случае предпочтительнее использовать массив аргументов и когда я должен использовать словарь. Кроме того, легко ли добавить параметр в аргументы моей функции в каждом случае?

ответ

0

Я бы рекомендовал создать класс для всех ваших параметров и передать один экземпляр этого класса. Плохой дизайн - это методы с большим количеством параметров, и если вы используете массив, он менее надежный, потому что вам всегда нужно будет подсчитать, в каком индексе находится ваш параметр. С классом все ваши «параметры» будут называться полями или свойствами.

Вот простой пример того, что я говорю о:

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

Да я думаю, тоже об использовании класса инкапсулировать все мои параметры и создать метод add_paramater и назвать его каждый раз, когда мне нужно добавить paramater в этот класс, что вы думаете, пожалуйста? – sourh

+0

Ну, я имел в виду, что вы создали класс, у которого есть статический набор именованных свойств, а не набор параметров. В противном случае вам придется обращаться к вашим параметрам по имени, и что, если имя вашего параметра изменится и вы забудете изменить строковое значение, обращаясь к вашему параметру? Это может привести к ошибкам, и, следовательно, это не так надежно. –

+0

Вы правы, я думал о том, что у меня есть класс с набором параметров, или у каждого параметра у меня есть геттер и сеттер, но я не думал об этом случае, если бы я изменил имя параметра. Итак, не могли бы вы дать более подробную информацию о том, как я могу использовать статический набор именованных свойств, потому что я новичок в VBS. Если вы можете, пожалуйста, привести мне пример. – sourh

Смежные вопросы