有很多解决方案,但它不起作用,因为我需要。所以问题是: 我有一个表单类:
public partial class Form1 : Form , InterfaceConsole
{
Imperx cam;
public Form1()
{
InitializeComponent();
cam = new Imperx(this);
}
...
}
我有自己的名为Imperx的课程:
class Imperx
{
private InterfaceConsole imperx_Form;
private Form form;
public Imperx(Form form){
this.form = form;
imperx_Form = (?????)form;
}
所以,我想将我的表单变量转换为在Form1类中实现的接口,但我想在不转换为Form1的情况下执行此操作?据我所知,使用form.getType()函数对我很有用,但它说不能将System.type隐含到 my_namespace .InterfaceConsole。
答案 0 :(得分:0)
编译器是对的。由于您传递的是表单,因此没有隐式转换为InterfaceConsole
。
您可以与运营商is
核实表单是否为InterfaceConsole
类型,然后进行投射。或直接将其投射到它并检查是否无效。
您可以通过传递Form1类型而不是Form类型来修复Imperx
,然后隐式转换将可用。
如果不知道这个场景,这些方法看起来都不好,因为你在这里创建了所有类之间的依赖关系。