2017-10-13 7 views
0

대리자를 인수로 사용하는 메서드가있는 경우 대리자 (메서드를 가리킴) 전달과 메서드 이름 전달 사이에 차이가 있습니까? 그렇다면 각 접근법의 장점/단점은 무엇입니까?C#에서 대리자 전달 vs 메서드에서 전달

delegate void MyDel(); 
static void MyFunc(MyDel) 
{ 
MyDel(); 
} 
static void SomeFunc(){//do stuff} 
static void Main() 
{ 
MyDel del= new MyDel(SomeFunc); 

//What's the difference between the approaches below? 
del(); 
MyFunc(SomeFunc); 
} 
+3

가능한 복제 [대표하고는 동일하거나 유사한 콜백?] : 그것을 다시 받아에게 (필요 https://stackoverflow.com/questions/290819/are- 델리게이트 및 콜백 - 동일 또는 유사) – GolezTrol

+2

* "실제 메서드에서 전달"* 무엇입니까? 코드로 두 경우의 예를들 수 있습니까? – Sinatr

+2

"실제 메서드에서 전달"과 같은 것은 없습니다. * 메서드 그룹 *을 인수로 사용하면 대리자로 변환됩니다. –

답변

-3

대리인은 메소드 threadsafe를 호출하는 데 사용됩니다. 그들은 형식 ​​안전하고 안전합니다. 직접 방법을 전달하면 예를 들어 Form.Control을 사용하면 응용 프로그램이 손상 될 수 있습니다. 그 때문에 당신이 대리인

좋아,

이의
+0

다음을 읽어보십시오. https://stackoverflow.com/questions/290819/are-delegates-and-callbacks-the-same-or-similar –