So I'm having a very weird problem... I'm working on a project which does some
Reflection
stuff. One of the things it does is read the name of methods. I've got code that, in essence, looks like the following.
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Something(AddressOf Test)
End Sub
Private Sub Test()
End Sub
Private Sub Something(ByVal a As Action)
Dim name As String = a.Method.Name
End Sub
End Class
So in
Something
you would expect the
name
to be
Test
, right? Correct. Except that in the project I'm currently working on it's
__lambda_1
or something... I looked it up on the internet and found some C# examples. Tried this code in C# and it worked. Then tried it in another VB project and it worked. Tried it on another machine and it worked... Why the hell does this one project compile my named method into an anonymous one? In fact it seems this project compiles every
delegate
I use into an anonymous method.
If the compiler randomly decides to create all kinds of 'lambda' stuff I obviously can't use this...
Any ideas? Thanks.