2017-12-07 12 views
2

tl; dr 버전 : nameof(ToCelsius)ToCelsius을 반환합니다. 하지만 기본 함수의 이름 인 ToCelsiusByA을 반환하는 무언가가 필요합니다.func <> 위임자의 구체적인 구현의 이름 반환

따라서 구체적인 구현이 할당 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'를 표시합니다.

+1

리플렉션을 통해서만 가능하다고 부탁드립니다. – Nekeniehl

+0

@Nekeniehl 아래의 답변을 확인하십시오. – PakiPat

+0

항상 = D 배우는 좋은 시간입니다. – Nekeniehl

답변

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

하지만 참고 :이 같은 조합 대의원 또는 람다/익명 메소드로 대의원을 포함하는 시나리오의 범위를 잘 작동하지 않습니다.