How do you pass a generic delegate argument to a method in .NET 2.0
        Posted  
        
            by Seth Spearman
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Seth Spearman
        
        
        
        Published on 2010-05-07T18:54:58Z
        Indexed on 
            2010/05/07
            18:58 UTC
        
        
        Read the original article
        Hit count: 272
        
Hello,
I have a class with a delegate declaration as follows...
Public Class MyClass  
    Public Delegate Function Getter(Of TResult)() As TResult    
    'the following code works.
    Public Shared Sub MyMethod(ByVal g As Getter(Of Boolean))
        'do stuff
    End Sub
End Class
However, I do not want to explicitly type the Getter delegate in the Method call. Why can I not declare the parameter as follows...
... (ByVal g As Getter(Of TResult))
Is there a way to do it?
My end goal was to be able to set a delegate for property setters and getters in the called class. But my reading indicates you can't do that. So I put setter and getter methods in that class and then I want the calling class to set the delegate argument and then invoke. Is there a best practice for doing this.
I realize in the above example that I can set set the delegate variable from the calling class...but I am trying to create a singleton with tight encapsulation.
For the record, I can't use any of the new delegate types declared in .net35.
Answers in C# are welcome.
Any thoughts?
Seth
© Stack Overflow or respective owner