PSA: 위임은
1026 단어 cprogrammingopinion
네가 찾는 건 대표야.
A
delegate
는 정의 방법 서명의 한 방법이다.그리고 Func
,Action
또는 유형 방법(가장 적합한 기준)을 통해 그것을 실현할 수 있다.그것들은 심지어 의존 주입과 잘 어울려 사용할 수 있다. a
delegate
는 하나의 정의일 뿐 실현이 아니다.테스트 가능성을 유지하고 싶다면 주의해야 한다. 테스트에서 Func
또는Action
의 방식으로 가상을 통해 실현할 수 있다.아날로그 프레임은 필요 없어요.여기에 예가 하나 있다
// Definition
public delegate void SendEmail(string recipient, string sender, string subject, string message);
// Registering with a DI system
services.AddTransient(_ => (recipient, sender, subject, message) => { /* Implementation */ });
// or
services.AddTransient(_ => StaticClassWithImplementation.StaticMethodImplementingDelegate);
// In testing
var systemUnderTest = new ClassThatNeedsToSendEmails((_, __, ___, ____) => { log.Info("Sent email"); });
인터페이스와 종류를 너무 복잡하게 하지 마라. 그것은 단지 의뢰일 수도 있다.
Reference
이 문제에 관하여(PSA: 위임은), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jonstodle/psa-delegate-is-a-thing-1j69텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)