如何在表达式lambda中使用Type.GetType

cri*_*nqr 3 c#

我正在尝试在c#中执行下一条指令:

Form form = this.MdiChildren.FirstOrDefault(x => x is Type.GetType("MyFormName"));
Run Code Online (Sandbox Code Playgroud)

但我有一个错误:预期的方法名称.

什么是正确的指令用法.

Ser*_*rvy 7

由于您有一个Type实例,您需要使用IsAssignableFrom而不是is:

x => Type.GetType("MyFormName").IsAssignableFrom(x.GetType())
Run Code Online (Sandbox Code Playgroud)

这当然假设您在编译时确实无法引用实际类型.如果可以,那么您可以将此代码简化为:

.OfType<MyFormName>().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

哪个内部会有类似的内容:

x is MyFormName
Run Code Online (Sandbox Code Playgroud)

is操作员的设计方式如何.