返回 func<> 委托的具体实现的名称
Returning name of the concrete implementation of a func<> delegate
tl;dr 版本:nameof(ToCelsius)
returns ToCelsius
。不过,我想要 returns 底层函数名称 ToCelsiusByA
的东西。
我的 ToCelsius
被分配了一个具体的实现:
Func<decimal,decimal> ToCelsius = ToCelsiusByA;
然后我调用 ToCelsius
函数:
var degreesC = ToCelsius(degreesF);
我想返回已实现函数的名称 (ToCelsiusByA
),所以我正在尝试这样做:
Console.WriteLine(degreesF + " degrees F is " + degreesC + " degrees C! using " + nameof(ToCelsius));
但是,当然,这会在字符串中显示 'ToCelsuis'。
Console.WriteLine(theDelegate.Method.Name);
但请注意:这不适用于涉及委托的一系列场景,例如组合委托或 lambdas / 匿名方法。
tl;dr 版本:nameof(ToCelsius)
returns ToCelsius
。不过,我想要 returns 底层函数名称 ToCelsiusByA
的东西。
我的 ToCelsius
被分配了一个具体的实现:
Func<decimal,decimal> ToCelsius = ToCelsiusByA;
然后我调用 ToCelsius
函数:
var degreesC = ToCelsius(degreesF);
我想返回已实现函数的名称 (ToCelsiusByA
),所以我正在尝试这样做:
Console.WriteLine(degreesF + " degrees F is " + degreesC + " degrees C! using " + nameof(ToCelsius));
但是,当然,这会在字符串中显示 'ToCelsuis'。
Console.WriteLine(theDelegate.Method.Name);
但请注意:这不适用于涉及委托的一系列场景,例如组合委托或 lambdas / 匿名方法。