저는 이와 같이 대표자를 씁니다.코드를 엉망으로 만들지 않고 대표자를 작성하십시오.
delegate void MyMethod(string arg1, string arg2);
MyMethod mm;
단일 대리인을 선언하는 데 왜 두 줄이 필요한지 알 수 없습니다. 수업에 20 명의 대표가 있다면 40 줄의 코드를 작성해야합니다. 누구나 코드 한 줄로이 코드를 작성할 수 있습니까? 미리 감사드립니다.
저는 이와 같이 대표자를 씁니다.코드를 엉망으로 만들지 않고 대표자를 작성하십시오.
delegate void MyMethod(string arg1, string arg2);
MyMethod mm;
단일 대리인을 선언하는 데 왜 두 줄이 필요한지 알 수 없습니다. 수업에 20 명의 대표가 있다면 40 줄의 코드를 작성해야합니다. 누구나 코드 한 줄로이 코드를 작성할 수 있습니까? 미리 감사드립니다.
현재 매우 다른 두 가지를 선언하고 있습니다 :
는MyMethod
차이점을 이해하는 것이 중요합니다. 왜냐하면 새로운 대리자 유형을 실제로 선언하고 싶을 때와 u 그냥 기존 대리자 형식의 필드를 선언하고 싶습니다. 클래스에 20 개의 델리게이트 필드가 있다면, 각각의 델리게이트 필드에 새로운 타입을 선언하고 싶지는 않을 것입니다. 그들이 동일한 서명을 가지고 있다면, 당신은 하나의 타입을 사용할 수 있습니다 ... 또는 더 나은 것, 단지 Action<...>
또는 Func<...>
과 같은 프레임 워크 타입 중 하나를 사용하십시오.
Action<string, string> mm;
(void
반환 형식에 대한 Action
대표, 및 비 void
반환 형식에 대한 Func
대표 모두가 일반적으로 표현했다. 자세한 내용은 MSDN 봐, 매개 변수의 서로 다른 숫자가 있습니다.)
당신이 만약 .NET Framework 3.5 이상을 사용하면 [Func] (http://msdn.microsoft.com/en-us/library/bb549151(v=90?hl=ko) .aspx) 및 [Avtion ] (http : 매번 새 대리자 형식을 선언하는 대신 //msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx) 대리자를 참조하십시오. –
Yuriy
Func과 Delegate간에 성능 차이가 있습니까? –
이 - [C# 일반 대 비 일반 성능] (http://stackoverflow.com/questions/17307326/c-sharp-generic-vs-not-generic-performance), 도움이됩니다. – Yuriy