在。net汇编中使用抽象类的问题

11次浏览(最近30天)
Kian米拉尼
Kian米拉尼 2020年1月5日
回答: 安德鲁Janke2020年1月31日
我正在尝试与Thorlabs制造的压电驱动器进行交流,该驱动器使用他们的Kinesis软件操作。我需要在thorlabs . motioncontrol . generic压电cli组装中使用thorlabsgeneric压电cli类,然而,当我尝试创建类的实例时,我得到一个错误。代码是
定义程序集的路径
thorlabs_asm_path =“C: \ Program Files \ Thorlabs \运动\ '
genPiezo_asm_name =“Thorlabs.MotionControl.GenericPiezoCLI.dll”
添加程序集
genPiezo_asm = NET.addAssembly (fullfile (thorlabs_asm_path genPiezo_asm_name));
从程序集定义类
genPiezo_cls = Thorlabs.MotionControl.GenericPiezoCLI.Piezo.ThorlabsGenericPiezoCLI;
错误的是
错误使用Thorlabs.MotionControl.GenericPiezoCLI.Piezo.ThorlabsGenericPiezoCLI
抽象类不能被实例化。类的Thorlabs.MotionControl.GenericPiezoCLI.Piezo。thorlabsgeneric压电cli '定义了抽象方法和/或属性。
我想我的第一个问题是,当它不能被实例化时,我如何使用这个类中的方法和属性?或者,如果我使用来自不同程序集但继承自这个抽象类的其他子类,那么我是否需要实例化这个抽象类?

答案(1)

安德鲁Janke
安德鲁Janke 2020年1月31日
您不需要,实际上也不能,直接实例化这个抽象类。这就是抽象类:一个定义不完整的类,不能自己实例化。您需要实例化它的一个“具体的”子类,它提供一个完整的实现。检查Thorlabs文档,找出在这种情况下应该使用哪个子类。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!