C# 儿童问题
我与C# 儿童问题,c#,.net,arrays,forms,casting,C#,.net,Arrays,Forms,Casting,我与mdi儿童有铸造问题 这项工作: MyForm mf = (MyForm)this.ActiveMdiChild; 这不起作用: MyForm[] mfs = (MyForm[])this.MdiChildren; 父窗体中的所有窗体都是MyForm的实例,但我无法成功转换它们。这意味着我不能使用MyForm提供的任何方法,因为它们只是表单对象。我可以做些什么来纠正这个问题?以下是您可以做的 IEnumerable<MyForm> mfs = this.MdiChildren
mdi儿童
有铸造问题
这项工作:
MyForm mf = (MyForm)this.ActiveMdiChild;
这不起作用:
MyForm[] mfs = (MyForm[])this.MdiChildren;
父窗体中的所有窗体都是
MyForm
的实例,但我无法成功转换它们。这意味着我不能使用MyForm
提供的任何方法,因为它们只是表单对象。我可以做些什么来纠正这个问题?以下是您可以做的
IEnumerable<MyForm> mfs = this.MdiChildren.Cast<MyForm>();
IEnumerable mfs=this.MdiChildren.Cast();
该属性返回一个表单
实例数组,它与MyForm
实例数组不同(不能直接转换为MyForm
实例数组)
您可以使用LINQ的方法执行显式转换:
MyForm[] mfs = this.MdiChildren.Cast<MyForm>().ToArray();
MyForm[]mfs=this.mdichilds.Cast().ToArray();
为什么需要从MDI子项中单独收集(数组)?为什么不迭代该集合并根据需要单独强制转换?