대리자 인스턴스가 함수 인스턴스와 상호 교환 가능하다고 생각했습니다. 당신은 C#을 사용하는 경우 당신은 적어도 내가 최대하지 않은 (차이를 볼 수 없을거야, 동등한 것으로 나타 호출대리자 인스턴스와 메서드 포인터의 차이점은 무엇입니까?
delegate int AddDelegate(int a, int b);
AddDelegate DelegateInstance;
public void DoStuff()
{
//I can call this without a delegate "instance":
MethodThatTakesAdd(Add);
//I can also call it WITH a delegate "instance"
DelegateInstance = Add;
MethodThatTakesAdd(DelegateInstance);
}
public int Add(int a, int b)
{
return a + b;
}
public void MethodThatTakesAdd(AddDelegate addFunction)
{
Console.WriteLine(addFunction(1, 2).ToString());
}
두 가지 방법과 :
다음 코드를 가지고 이 점). 그러나 최근에이 관리 코드를 다시 호출하는 관리되지 않는 코드 였지만 다르게 처리되었습니다. 예를 들어, 한 시나리오에서 콜백으로 함수를 직접 사용하면 "가비지 수집 된 대리자에서 콜백이 발생했습니다."라는 오류 메시지가 나타납니다 (내 개체 인스턴스가 보관되어 있어도). "위임 인스턴스"를 사용하면 문제가 해결됩니다.
차이점을 알고있는 사람이 있습니까?
il은 어떤 모습입니까? 후드 아래에 일반적으로 다르게 취급된다는 표시가 있습니까? –