هل هناك أي طريقة للتحقق لمعرفة ما إذا تم تعريف وظيفة VBScript؟

StackOverflow https://stackoverflow.com/questions/921364

سؤال

هذا ربما مجرد التفكير بالتمني ...

هل هناك أي طريقة للتحقق لمعرفة ما إذا تم تعريف وظيفة ASP / VBScript قبل الاتصال به؟

هل كانت مفيدة؟

المحلول

إنها طريقة اختراق قليلا للقيام بذلك لأنها تعتمد على تعيين "عند الخطأ استئناف التالي"، ولكن يمكنك القيام بشيء مثل هذا:

On Error Resume Next
Dim objRef1, objRef2
Set objRef1 = GetRef("DoStuff1")
If objRef1 Is Nothing Then
    Call objRef1
Else
    MsgBox "DoStuff1 is not defined!"
End If

Set objRef2 = GetRef("DoStuff2")
If objRef2 Is Nothing Then
    MsgBox "DoStuff2 is not defined!"
Else
    Call objRef2
End If

Sub DoStuff1
    MsgBox "DoStuff1!"
End Sub

سيولد المكالمة إلى GetRef استثناء إذا كانت الفرعية أو الوظيفة التي تحاول الحصول على مؤشر غير موجود (كما هو الحال هنا مع Dostuff2). يمكنك بعد ذلك التحقق مما إذا تم تعيين المرجع كما هو متوقع.

نصائح أخرى

إليكم حلاي الذي يعمل على نفس المبدأ، ولكن المخربونة-نيس محتويات ذاتيا:

Function FunctionExists( func_name )
    FunctionExists = False 

    On Error Resume Next

    Dim f : Set f = GetRef(func_name)

    If Err.number = 0 Then
        FunctionExists = True
    End If  
    On Error GoTo 0

End Function 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top