반응형
기능() 대 Func.Invoke ()
Func를 직접 호출하는 것과 Invoke ()를 사용하는 것의 차이점에 대해 궁금합니다. 차이가 있습니까? 첫 번째, 구문상의 설탕이며 어쨌든 Invoke ()를 호출합니까?
public T DoWork<T>(Func<T> method)
{
return (T)method.Invoke();
}
vs
public T DoWork<T>(Func<T> method)
{
return (T)method();
}
아니면 내가 완전히 잘못된 길을 가고 있습니까 :) 감사합니다.
전혀 차이가 없습니다. 두 번째는 Invoke
컴파일러에서 제공 하는의 약어입니다 . 그들은 동일한 IL로 컴파일됩니다.
Invoke는 새로운 C # 6 null 전파 연산자와 잘 작동하므로 이제 할 수 있습니다.
T result = method?.Invoke();
대신에
T result = method != null ? method() : null;
참고 URL : https://stackoverflow.com/questions/16309286/funct-vs-funct-invoke
반응형
'programing tip' 카테고리의 다른 글
IntelliJ : 로컬 및 git 커밋 / 브랜치간에 변경된 모든 파일의 차이점보기 (0) | 2020.10.30 |
---|---|
교리 청취자 대 구독자 (0) | 2020.10.30 |
익명 인터페이스가 포함 된 구조체의 의미? (0) | 2020.10.30 |
재귀 ConcurrentHashMap.computeIfAbsent () 호출은 종료되지 않습니다. (0) | 2020.10.30 |
오류 : getaddrinfo EAI_AGAIN (0) | 2020.10.30 |