나는이 질문 diference between delegate and action대표는, 액션 위임 매개 변수로 전달 람다 식
하지만 난 람다를 통과 할 수있는 반면 행동 유형 매개 변수
을 받아 들일 방법에 람다 식을 전달할 수있는 이유를 나는 아직도 궁금에서 살펴 나는이 인쇄 방법을
위임 유형 매개 변수를 허용 방법과 표현, 난 당신이 F를 볼 수 인쇄 메소드를 호출 이러한 두 가지 방법을 만들어
public static void Print()
{
Console.WriteLine("Printing ..");
}
행동과 위임을 사용하여 참조합니다 IRST 행동 유형 매개 변수를 가지고 있으며, 두 번째는 이러한 매개 변수 내가 이러한 방법에 람다 식을 전달합니다
public static void ActionParamMethod(Action DAction)
{
DAction();
}
public static void DelegateParamMethod(Delegate SomeDelegate)
{
}
방법 "인쇄"를 참조 할 대리자 형식 매개 변수가
public static void SomeHowMethod()
{
DelegateParamMethod(() => Print());
ActionParamMethod(() => Print());
}
내가 통과하려고 위임 매개 변수를 허용하는 방법에 람다 표현식이 오류를 얻을 'System.Delegate'을 입력 람다 식을 변환 할 수 없습니다
이 01 때문에은 델리게이트 형식이 아닙니다.
이유는 위임 유형이 아니며 작업은 위임 유형입니까?
Action 매개 변수를 허용하는 메서드에 람다 식을 전달할 수 있지만 대리 매개 변수를 수락하는 메서드에 람다 식을 전달할 수없는 이유는 무엇입니까?
'Delegate'를주의해서 사용해야하지만, 사용법은 분명합니다. 서명에 관계없이 모든 대리인을 수락 할 수 있기를 정말로 원한다면 사용하는 데 필요한 것입니다. 그것의 적절한 사용은 확실히 희소하다, 그러나 그들은 존재한다. 또한 이것이 실제로 질문에 대답하지 않는다는 점에 유의하십시오. 기껏해야 의견이어야합니다. – Servy
양식 및 컨트롤에는 BeginInvoke와 같은 많은 방법으로 대리인이 많이 사용되지만 솔직히 왜 사용되는지는 알 수 없습니다. –
@Servy : 나는 이런 점을 명확히 할 때 절대적으로 선호합니다. '보통'으로 모든 것을 페퍼 링하는 것은 요점을 모호하게 만드는 경향이 있습니다. 델리게이트와 델리게이트의 차이점을 이해하지 못한다면, "후자를 절대 사용하지 마십시오"라고 말하는 것이 안전합니다. 필요할 때가 오기까지 오랜 시간이 걸릴 것입니다. – Guvante