具有内部 Lambda 表达式的 lambda 表达式
本文关键字:表达式 lambda Lambda 内部 | 更新日期: 2023-09-27 18:21:14
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));
typeof
仅适用于类型名称。如果需要运行时类型的c
,则必须使用Object.GetType
并说c.GetType()
。
因此,编译器看到typeof(c)
并知道typeof
只接受类型名称,因此勇敢地尝试在某处、任何地方找到名为c
的类型,但遗憾的是,它不能。所以,它告诉你"我找不到c
的类型"。