중국시가넷 - 개인 서명 - C#, 위탁서의 서명은 무슨 뜻인가요?

C#, 위탁서의 서명은 무슨 뜻인가요?

다음은 세 명의 장관이 위임장의 서명에 따라 정의한 방법이다. 우리가 정의한 위임 서명은 MinisterReturns 를 반환하는 것이지만, 다음 세 장관이 반환한 것은 다르다. 왜 이렇게 할 수 있습니까?

실행 후 다음 결과를 분석합니다.

학급 목사

{

공용 정적 금화 MinisterAOneYearDo ()

{

금화 동전 = 새 금화 (100);

콘솔。 WriteLine ("저는 장관 A 입니다. 왕에게 100 금화를 가져왔습니다." " );

동전을 반환하다

}

}

반 목사 b

{

공공 정적 상품 부서

{

상품 상품 = 신상품 ();

콘솔。 WriteLine ("저는 부장 B 입니다. 국왕에게 우리나라에 없는 정교한 상품을 가져왔습니다." " );

반송

}

}

담임 선생님 c

{

공용 정적 금화 MinisterCOneYearDo ()

{

금화 동전 = 새 금화 (10);

콘솔。 WriteLine ("저는 C 부장입니다. 왕에게 같은 10 금화를 가져왔습니다." " );

동전을 반환하다

}

}

학급 계획

{

정적 void Main(string[] args)

{

//왕령에 대해 알아봅시다. 사실 우리의 위탁서명입니다.

//delegateministerreturns ministeroneyardo ();

콘솔。 WriteLine ("왕의 명령:", 왕. Kings order);

//장관 A 는 위탁 서명으로 작성된 방법을 다른 방법으로 전달하여 처리합니다.

King.handleministeroneyardo (미니스터 a). Ministeroaneyeardo);

콘솔。 Readline ();

//장관 B 는 위탁 서명으로 작성된 방법을 다른 방법으로 전달하여 처리합니다.

King.handleministeroneyardo (미니스터 b). Ministerboneyeardo);

콘솔。 Readline ();

//장관 C 는 위탁 서명으로 작성된 방법을 다른 방법으로 전달하여 처리합니다.

King.handleministeroneyardo (미니스터 C. Ministerconyeardo);

콘솔。 Readline ();

}

} 구체적인 구현 메서드에서 반환한 값이 위임 delegate 에서 반환한 값과 다른 이유는 위에 설명되어 있습니다. 사실, 위임에서 공변을 사용했다. 다음은 MSDN 대표의 공변 분석에 대한 참조입니다. 위임 메소드의 반환 유형이 위임 서명보다 더 큰 파생 정도를 가질 때 공변 위임 메소드라고 합니다. 메서드의 반환 유형이 위임 서명의 반환 유형보다 더 구체적이므로 암시적으로 변환할 수 있습니다. 그런 다음이 메서드를 위임으로 사용할 수 있습니다. 공분산은 클래스와 파생 클래스를 모두 만들 수 있는 위임 메서드를 가능하게 합니다.