런타임에 정의한 대리자가 있습니다. 사전에 특정 키가 포함되어 있는지 확인하고 싶습니다. 대리자 매개 변수 중 하나는 사전에 대한 ref
이므로 사전은 항상 최신 버전 (고정 된 복사본이 아님)입니다.C# 대리자 참조없이 개체 필드 값 사용
그러나 조회 할 키는 object
필드이지만 그 개체에 ref
을 전달하고 싶지 않습니다. 필드 값을 잡고 상수 (고정 된 사본) 인 것처럼 사용하고 싶습니다.
정확한 코드 발췌 문장입니다. netController에 ref를 전달하면 어떤 것이 있는지 확인하는 데 ContainsID()
을 사용할 수 있습니다. ID 매개 변수는 msg
개체에서 가져 오지만 컨테이너 개체에 대한 참조없이 값을 사용하고 싶습니다.
nc
이 대리인의 범위에 있지만 msg
아니다. 이것이 가능합니까 아니면 매개 변수로 모든 것을 전달해야합니까?
참고 : 사전을 말하지만 실제로는 사전과 같은 개체입니다. ContainsID()
은 ContainsKey()
의 래퍼입니다. 이 부분에 대해 걱정하지 마십시오.
? 대리인에 이것을 어떻게 저장합니까? – Oliver
@Oliver 편집을 참조하십시오. – dasblinkenlight
나는 두껍습니까? 아니면 여전히 뭔가를 놓치고 있습니까? '''Func <컨트롤러, bool> MakeChecker (메시지 msg) { return nc => nc.ObjectRegister.ContainsID (msg.parentObjectID); }'''는 나를 위해 맞지 않습니다. .net 2.5를 사용하고 있습니다. 죄송 합니다만 언급하는 것을 잊어 버렸습니다. 메시지가 문맥에서 유효하지 않은 유형입니다. 예상. 또는 = return 문이 포함 된 주 기능에서 반환하려고 시도하고 있습니다 (문제가 발생 함). – Oliver