В классическом ASP возможно ли создать END sub или функцию? - PullRequest
0 голосов
/ 16 января 2012

Я создал класс в asp и хотел узнать, возможно ли создать функцию или подраздел с именем «END». Возможно ли это даже как саб или функция. Причина, по которой я хотел вызвать это для моего экземпляра класса или модуля класса, такого как MyClass.End, заключается в том, чтобы затем вызвать response.end?

Или возможно переопределить функцию response.end, чтобы сначала что-то проверить, прежде чем завершить?

class Myclass

sub write(dim str)
      response.write(str)
end write

' Is this "END" possible?
sub end
   response.end
end sub

End class

Ответы [ 2 ]

5 голосов
/ 17 января 2012

Исправление

Это недопустимая декларация подпрограммы: sub write(dim str)
Dim оператор не может использоваться для объявления параметров. Вы должны использовать ByRef или ByVal . По умолчанию используется ByRef, если не указано.
И end write должно быть end sub.
См. Инструкции из MSDN: Sub Statement

Трюк

Когда вам нужно использовать зарезервированное ключевое слово для имени свойства или метода в классах, вы можете объявить его в квадратных скобках. Тогда можно звонить без скобок. Вот пример:

Class Myclass

    Sub Write(str)
        Response.Write str
    End Sub

    Sub [End] 'with brackets
       Response.End
    End Sub

End Class

Set o = New Myclass
    o.write "what's up?"
    o.end 'without brackets

Response.Write "..." 'this will not be printed
1 голос
/ 17 января 2012

end - зарезервированное слово для vbscript (на чем основан классический ASP), поэтому нет. Это список зарезервированных слов ... http://support.microsoft.com/kb/216528

...