将非托管代码返回的一个object 对象转换为 string 数组

前两天用 DHTMLEditor ActiveX 控件,想通过 ExecCommand 返回一个字符串数组,可是返回的却是一个 object 类型,该返回值在快速监视里面查看时显示的是 string[] 类型,而且内容也可以查看,但是在代码中使用

string[] names = (string[] ) retValue;
 foreach( string name in names ){
       Console.WriteLine(name);
}
却报告类型转换错误。

没办法了,在立即窗口里面打 retValue.GetType() 想看看到底 retValue 是什么类型,居然返回 object[],原来不能使用(string[] ) retValue 直接将一个 object 数组转换为一个 string 数组,那只能用下面的方法:

object[] names = (object [] ) retValue;
foreach( object name in names ){

       Console.WriteLine( (string) name);
}

至此,类型转换错误的问题彻底解决了。

你可能感兴趣的:(String)