VB.Net如何获取传入函数的变量名称与值?
同时获取传入变量的名称与值的实现方法
你可以通过编译表达式并执行来获取变量的值,结合已有的变量名提取逻辑,就能得到"变量名: 值"的格式结果。修改后的代码如下:
Dim aaaa As String = "test1234" Dim bbbb = ExampleFunction(Function() aaaa) ' 此时bbbb的值为 "aaaa: test1234" Public Function ExampleFunction(f As Linq.Expressions.Expression(Of Func(Of String))) As String ' 提取变量名称 Dim varName = DirectCast(f.Body, Linq.Expressions.MemberExpression).Member.Name.Split("_")(1) ' 编译表达式并执行,获取变量的值 Dim varValue = f.Compile().Invoke() ' 拼接结果返回 Return $"{varName}: {varValue}" End Function
关键说明
- 提取变量名:保留你原有的逻辑,通过
MemberExpression获取变量名称并处理。 - 获取变量值:调用表达式的
Compile()方法将其编译为可执行委托,再通过Invoke()执行委托,就能拿到变量的当前值。 - 拼接结果:将变量名和值按需求格式组合后返回即可。
内容的提问来源于stack exchange,提问作者Nadi h
相关产品推荐
相关产品推荐

