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

标签 c#

我正在尝试用 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/

相关文章:

c# - .Net 配置部分中具有相同元素的集合

c# - 执行 while 循环以检查文件是否存在

c# - 以安全的方式使用托管的 asmx

c# - MVC4 : How do I get value from partial view for insert/edit

c# - 正确使用 DialogResult

c# - 删除属性 = myValue 的列表项

c# - 使用变量控制 C# 复选框

c# - 帮助用户在 EditFor 中输入正确的格式

javascript - HTML 页面上的 Google Cloud Speech API

c# - 如何使用可空的 setter/getter ?