mardi 9 février 2016

vb pass name of function using intellisense

I'm tying to implement a novel way of overriding functions based on which DLLs I have loaded. In this model, I have a list of class instances from First = Highest Priority to Last = Lowest priority.

Any of those classes may implement a Hook function or callback. I'm currently at the stage where I can pass a string to a function, and then call it - my library convention looks like this:

Dim hookclasses as HooksList
Dim callable as Object

hookclasses.Add(new ClassA)
hookclasses.Add(new ClassB)
'... etc.

if hookclasses.Has("MyHookFunction", callable) then
    callable.MyHookFunction()
end if

This all works, but I'd like to reduce typos by leveraging Intellisense. I've already thought of popping the strings into a class containing constant strings, so I'm after something better than that.

Ideally I'd like to have a fallback class that implements all of the hook functions (even if it simply returns), and if the language supported it, I'd like to do the following:

if hookclasses.Has(NameOf(FallbackClass.MyHookFunction), callable) then ...

Clearly there is no 'NameOf' operator, and I don't know how to write a NameOf function.

Is this possible?

Thanks.





Aucun commentaire:

Enregistrer un commentaire