Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You may want to try the following (warning => C#):</p> <pre><code> class Program { static void Main(string[] args) { test(1, "one"); test(2, "two"); test(3, "three"); Console.ReadLine(); } private static void test(int x, string y) { DisplayParameterNameAndValue(() =&gt; x); DisplayParameterNameAndValue(() =&gt; y); } static void DisplayParameterNameAndValue(Expression&lt;Func&lt;object&gt;&gt; parameter) { var expressionBody = parameter.Body; MemberExpression memberExpression; if (expressionBody is UnaryExpression) { memberExpression = (MemberExpression)((UnaryExpression)expressionBody).Operand; } else if (expressionBody is MemberExpression) { memberExpression = (MemberExpression)expressionBody; } else { throw new ArgumentException("parameter"); } string parameterName = memberExpression.Member.Name; object parameterValue = parameter.Compile().Invoke(); Console.WriteLine("{0} =&gt; {1}", parameterName, parameterValue); } } </code></pre> <p>The equivalent code in VB would be:</p> <pre><code>Module Module1 Sub Main() test(1, "one") test(2, "two") test(3, "three") Console.ReadLine() End Sub Private Sub test(ByVal x As Integer, ByVal y As String) DisplayParameterNameAndValue(Function() x) DisplayParameterNameAndValue(Function() y) End Sub Private Sub DisplayParameterNameAndValue(ByVal parameter As Expression(Of Func(Of Object))) Dim expressionBody = parameter.Body Dim memberExpression As MemberExpression If TypeOf expressionBody Is UnaryExpression Then memberExpression = DirectCast(DirectCast(expressionBody, UnaryExpression).Operand, MemberExpression) ElseIf TypeOf expressionBody Is MemberExpression Then memberExpression = DirectCast(expressionBody, MemberExpression) Else Throw New ArgumentException("parameter") End If Dim parameterName As String = memberExpression.Member.Name Dim parameterValue As Object = parameter.Compile().Invoke() Console.WriteLine("{0} =&gt; {1}", parameterName, parameterValue) End Sub End Module </code></pre> <p>I have test it, but it does not give me the same results as with c#, bad vb!</p> <p>Hope this helps.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload