2013-07-04 5 views
2
The type or namespace name 'c' could not be found (are you missing a using directive or an assembly reference?) 

아래에서 코드를 실행하려고하면 위에서 오류가 발생합니다.람다 표현식 (내부 람다 표현식)

this.Calendar.Entries.Any<CalendarEntry>(c => c.Date.Date == date.Date && Filters.Any<Type>(f => typeof(c).IsInstanceOfType(f))); 

아무도 왜 작동하지 않는지 알고 있습니까? 내가 그걸 작동시킬 수 있다면?

감사합니다.

편집 :

그래도 지금은 처음에 쓴대로 작동하지 않는 이유를 알고,하지만이처럼 쓸 때 그것은 작동 :

Filters.Any<Type>(f => this.Calendar.Entries.Where<CalendarEntry>(c => c.Date.Date == date.Date).SingleOrDefault().GetType().IsInstanceOfType(f)); 

답변

6

typeof는 이름을 입력 적용 . 런타임 유형이 c 인 경우 Object.GetTypec.GetType()을 사용해야합니다.

그래서, 컴파일러는, 슬프게도, 그것은 할 수없는 typeof(c)를보고 typeof 어디서나, 이름 만 입력 받아, 따라서 어딘가에 a type named c을 찾기 위해 용감하게을 을 시도하는 것을 알고 있지만. 그래서, 그것은 "c 유형을 찾을 수 없습니다."

+0

감사합니다. 그것은 작동합니다! 나 바보 같은, typeof를 사용하는 방법을 잊었 :) –

관련 문제