PSA: 위임은

1026 단어 cprogrammingopinion
이것은 모든 C# 개발자가 하나의 방법으로 인터페이스를 정의하고 구현할 수 있음을 알리는 짧은 알림일 뿐입니다.

네가 찾는 건 대표야.


Adelegate는 정의 방법 서명의 한 방법이다.그리고 Func,Action 또는 유형 방법(가장 적합한 기준)을 통해 그것을 실현할 수 있다.
그것들은 심지어 의존 주입과 잘 어울려 사용할 수 있다. adelegate는 하나의 정의일 뿐 실현이 아니다.테스트 가능성을 유지하고 싶다면 주의해야 한다. 테스트에서 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"); });
인터페이스와 종류를 너무 복잡하게 하지 마라. 그것은 단지 의뢰일 수도 있다.

좋은 웹페이지 즐겨찾기