У `Sub` есть указатель? - PullRequest
       10

У `Sub` есть указатель?

0 голосов
/ 26 февраля 2019

Спасибо, что прочитали это.

Я наткнулся на этот вопрос.Мы все знаем, что у Function есть указатель.Возьмем для примера:

Function TestPrint2(ByVal NameIn As String)
    TestPrint2 = NameIn
End Function

Мы могли бы получить указатель TestPrint2, используя VarPtr(TestPrint2("Hello World!"))

Мы могли бы написать этот код выше как Sub:

Sub TestPrint1(ByRef NameOut As String, ByVal NameIn As String)
    NameOut = NameIn
End Sub

Спасибо за комментарии ниже, я понял, что у sub / functions есть собственный указатель.(Сэр, я не основанный на CS, но основанный на финансах).Я использовал эти сабвуферы для проверки:

Function GetBaseAdd(lngadd As LongPtr) As LongPtr
    GetBaseAdd = lngadd
End Function

И это

Sub TestGetBaseAdd()
    Debug.Print "Pointer of Sub TestPrint1 " & GetBaseAdd(AddressOf TestPrint1)
    Debug.Print "Pointer of Sub TestPrint2 " & GetBaseAdd(AddressOf TestPrint2)
    Debug.Print "Pointer receiving return from TestPrint2 " & VarPtr(TestPrint2("Hello World!"))
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...