Конструкторы перегрузки в VBScript

Я думаю, что это может быть достигнуто с помощью сценариев вместе с gcloud SDK , gcloud позволяет запускать ресурсы в GCP, также есть много опций / флагов, которые могут быть полезны для установки необходимых вам конфигураций. .

Надеюсь, это поможет.

15
задан Alex Weitz 28 December 2016 в 12:06
поделиться

3 ответа

Просто чтобы немного изменить метод svinto ...

Class Test
  Private m_s
  Public Default Function Init(s)
    m_s = s
    Set Init = Me
  End Function
  Public Function Hello()
    Hello = m_s
  End Function
End Class

Dim o : Set o = (New Test)("hello world")

Вот как я это делаю. К сожалению, перегрузки нет.

[править] Хотя, если бы вы действительно этого хотели, вы могли бы сделать что-нибудь вроде этого ...

Class Test
    Private m_s
    Private m_i

    Public Default Function Init(parameters)
         Select Case UBound(parameters)
             Case 0
                Set Init = InitOneParam(parameters(0))
             Case 1
                Set Init = InitTwoParam(parameters(0), parameters(1))
             Else Case
                Set Init = Me
         End Select
    End Function

    Private Function InitOneParam(parameter1)
        If TypeName(parameter1) = "String" Then
            m_s = parameter1
        Else
            m_i = parameter1
        End If
        Set InitOneParam = Me
    End Function

    Private Function InitTwoParam(parameter1, parameter2)
        m_s = parameter1
        m_i = parameter2
        Set InitTwoParam = Me
    End Function
End Class

Что дает конструкторам ...

Test()
Test(string)
Test(integer)
Test(string, integer)

которые вы можете называть как:

Dim o : Set o = (New Test)(Array())
Dim o : Set o = (New Test)(Array("Hello World"))
Dim o : Set o = (New Test)(Array(1024))
Dim o : Set o = (New Test)(Array("Hello World", 1024))

Хотя немного проблематично.

22
ответ дан 1 December 2019 в 02:02
поделиться

Можно работать вокруг этого при наличии функции Init возврат самого объекта...

Class Test
  Private m_s
  Public Function Init(s)
    m_s = s
    Set Init = Me
  End Function
  Public Function Hello()
    Hello = m_s
  End Function
End Class

Dim o
Set o = (New Test).Init("hello world")
Echo o.Hello
6
ответ дан 1 December 2019 в 02:02
поделиться

Необходимо сделать это на двух шагах. Сценарий VB не поддерживает перегрузку, таким образом, Вы не можете изменить конструктора по умолчанию с новыми параметрами. То же идет для Vb6

2
ответ дан 1 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: