2017-12-07 2 views
2

tl; drバージョン:nameof(ToCelsius)ToCelsiusを返します。私は基本的な関数の名前を返す何か、ToCelsiusByAが、欲しいです。func <>デリゲートの具体的な実装の名前を返す

マイToCelsiusは、このように具体的な実装を割り当てられます。

Func<decimal,decimal> ToCelsius = ToCelsiusByA; 

私はその後、ToCelsius関数を呼び出す:私は実現される機能(ToCelsiusByA)の名​​前したい

var degreesC = ToCelsius(degreesF); 

ので、返さ私はこれを試しています:

Console.WriteLine(degreesF + " degrees F is " + degreesC + " degrees C! using " + nameof(ToCelsius)); 

しかし、もちろん、これは文字列に 'ToCelsuis'を表示します。

+1

私はあなたがリフレクションでのみ可能だと思うと思います。 – Nekeniehl

+0

@Nekeniehlは以下の答えをチェックします。 – PakiPat

+0

常に学ぶのは楽しいです= D – Nekeniehl

答えて

4
Console.WriteLine(theDelegate.Method.Name); 

が、注意してください。これは、このような組み合わせのデリゲートやラムダ/匿名メソッドとして代表者が関与するシナリオの範囲ではうまく機能しません。

関連する問題