[已解决]C#中对象定义为Object时如何获取属性?
本帖最后由 zhanglei1371 于 2021-8-5 10:33 编辑vba的语句是这样的:
Dim xlapp as object
xlapp=getObject(,"Excel.application")
msgbox xlapp.name
我在C#里这样写:
Object xlapp;
xlapp = Interaction.GetObject(Class: "Excel.application");
MessageBox.Show(xlapp.Version);
结果就出错了。如下:
我的目的:必须将xlapp定义为object(其他的写法也行,但就是不要写为Excel.application,因为可能是WPS)时,
如何访问其内部的各种对象和方法属性等东西呢?
感谢7楼和8楼的朋友,已完美解决! 需要类型转换 C#估计需要定义类型把,猜的没用过
VB的话不需要定义类型随便用,脚本语言 emmm,很明显你这个是Obj类型的啊,你怎么能类名.属性调用呢{:1_907:},必须强转啊。 你得强制转换你要什么类型就转成什么类型 逝去的初夏c 发表于 2021-8-5 10:00
emmm,很明显你这个是Obj类型的啊,你怎么能类名.属性调用呢,必须强转啊。
代码怎么写呢?能同时适用于wps的情况? 本帖最后由 BestTime 于 2021-8-5 10:24 编辑
Object xlapp;
xlapp = Interaction.GetObject(Class: "Excel.application");
if(xlapp is Excel.application app)
{
MessageBox.Show(app.Version);
} 本帖最后由 a952135763 于 2021-8-4 23:24 编辑
有引入application就封箱转换一下
var xlapp = (application)Interaction.GetObject(Class: "Excel.application");
没有引入application就这样
dynamic xlapp = Interaction.GetObject(Class: "Excel.application");
使用dynamic 可以直接访问 你 application有的属性和方法,但是没有智能提示 楼主真棒,感谢大佬
页:
[1]