programing tip

기능

itbloger 2020. 10. 30. 07:48
반응형

기능() 대 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

반응형