我正在尝试用 C# 执行下一条指令:
Form form = this.MdiChildren.FirstOrDefault(x => x is Type.GetType("MyFormName"));
但我有一个错误:需要方法名称。
指令的正确用法是什么。
最佳答案
因为您有一个 Type
实例,您需要使用 IsAssignableFrom
而不是 is
:
x => Type.GetType("MyFormName").IsAssignableFrom(x.GetType())
这当然假设你真的不能在编译时引用实际类型。如果可以,那么您可以将此代码简化为:
.OfType<MyFormName>().FirstOrDefault();
内部将有类似的东西:
x is MyFormName
这就是 is
运算符的设计用途。
关于c# - 如何在表达式 lambda 中使用 Type.GetType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21889941/