C#의 Functor와 동일한 기능이 있습니까?펑터는 C#에서 이에 상응하는 기능을합니까?
C#은 Func <,>, 대리자 및 익명 메소드를 포함하지만 메소드에 대한 이러한 포인터 중 일부는 아닙니다.
C++ Functor는 클래스이며 메서드에 대한 포인터가 아닙니다.
C#의 Functor와 동일한 기능이 있습니까?펑터는 C#에서 이에 상응하는 기능을합니까?
C#은 Func <,>, 대리자 및 익명 메소드를 포함하지만 메소드에 대한 이러한 포인터 중 일부는 아닙니다.
C++ Functor는 클래스이며 메서드에 대한 포인터가 아닙니다.
C#을 Func을 <,>, 대표 및 익명 메소드 을 가지고 있지만이 포인터의 모든 방법에하지?
아니요. C# 위임자도 컴파일러에서 구현 한 클래스입니다. 이러한 생성 된 클래스 (대리자 용)는 MulticastDelegate
에서 파생되며 Delegate
에서 파생됩니다.
즉, 델리게이트는 컴파일러에서 생성 한 클래스의 구문 설탕입니다.
람다 (Func <>, 작업 <>)와 대리인 (익명 포함)은 모두 클래스입니다. 당신이 방법에 포인터를해야하는 경우
당신이 이의 정렬 화를 사용해야합니다 (예를 들어, 안전하지 않은 코드로 합격) :
IntPtr pFunc = Marshal.GetFunctionPointerForDelegate(myDelegate);
이 답변이 도움이 될 수
http://stackoverflow.com/a/974639/187697 – keyboardP
나는 그것을 보았다. 그러나 그들은 자신의 질문에만 국한된 것이지 일반에 관한 것이 아니었다. – 4thSpace
그 답변에는 근사치 목록이 있습니다. –