2011-09-12 3 views
0

은 내 질문이 기술적으로 잘못된하게 표현하지만 기본적으로 익명의 방법 또는 다음과 같은 기능을 캡슐화하는 Func을 위임이 필요하면 용서 :익명 방법 작성에 도움이 필요하십니까?

   if (Cache.CurrentCustomer == null) 
       { 
        return null; 
       } 
       else 
       { 
        return Cache.CurrentCustomer.PersonID; // (Guid type) 
       } 

위의 문에 할당 할 것입니다 값을 반환 할 경우 nullable guid 유형을 허용하는 PersonID 속성 필드가 노출 된 Order 엔터티.

Func을 위양이 같은 즉석에서 인스턴스화 할 수 있습니다 다음 수 있다면

: 나는 일반적으로 제공되는 것

orderToInsert.PersonID = new Func() => { ... } 

이 도움말 지원 방법에 문 시나리오 밖으로 뭔가를 배울 수있는 좋은 기회 인 경우 내 내가왔다 나이를 잡으려고 노력하고있어! 티아! 여기

+0

'() => (? GUID) 신속한 대응을위한 Cache.CurrentCustomer.PersonID' – Steven

답변

4

는 람다 형태 :

Func<Guid?> lambda =() => Cache.CurrentCustomer == null 
          ? (Guid?)null 
          : Cache.CurrentCustomer.PersonID; 

그런 다음

orderToInsert.PersonID = lambda(); 

업데이트에서로 사용할 것입니다 : 당신은 단지 여기 가능성을 확인하려는 경우, 당신이 할 수있는 또한 다음을 수행하십시오.

orderToInsert.PersonID = (() => Cache.CurrentCustomer == null 
          ? (Guid?)null 
          : Cache.CurrentCustomer.PersonID)(); 

이것은 실제로 그냥 원형입니다. 고전을하는 방법 :

orderToInsert.PersonID = Cache.CurrentCustomer == null 
          ? (Guid?)null 
          : Cache.CurrentCustomer.PersonID; 
+0

TY,하지만 내 질문의 두 번째 절반에 설명 된대로 내가 그것을 사용할 수 있습니다 ?? ? ----------- 기본적으로 나는 그저 평소에 계획 방법을 사용하는 것만 배우고 싶다. 나는 그것을 인라인으로 사용하는 방법을 알고 있다고 생각한다. – IbrarMumtaz

+0

@IbrarMumtaz : 여기서 무엇을하려고하는지 이해하지 못합니다. 정확히 우리가 여기있는 것과 다르게하고 싶습니까? – Jon

+0

기본적으로 작성한 표현식을 사용하고 싶지만 인라인으로 선언하고 사용하십시오. 나는 지금 배울 것이고 아마도 프로젝트의 다른 영역에서 사용할 수있는 유용한 기술이라고 생각합니다. – IbrarMumtaz