使用 getType() 函数 C# 进行强制转换
本文关键字:转换 getType 函数 使用 | 更新日期: 2023-09-27 18:34:00
有很多
解决方案,但它不起作用,正如我需要的那样。所以问题是:我有一个表单类:
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
。
您可以与运算符is
检查表单是否为 InterfaceConsole
类型,然后强制转换它。或者直接将其投射到它并检查是否无效。
您可以通过传递 Form1 类型而不是 Form 类型来修复Imperx
,然后隐式转换将可用。
如果不了解场景,这些方法看起来都不好,因为您在此处的所有类之间创建依赖项。