object[] locals1 = new string[(UIntPtr)(uint)i];

object[] locals2 = new string[(UIntPtr)(uint)i]编译时提示D:\S\WebControls\A.cs(478): 无法将类型“System.UIntPtr”隐式转换为“int”这是为什么啊??
请教new string[(UIntPtr)(uint)i];
正确应该怎么写?

解决方案 »

  1.   

    你的目的是什么?建立一个数组么?还是要从一个Ptr返回一个字符串?如果是后者,
    参考System.Runtime.InteropServices.Marshal的PtrToStringAnsi方法
      

  2.   


    object[] locals1 = new string[(UIntPtr)(uint)i];
    这是在干什么?不明白lz的意思建立string类型的数组为什么要uint和UIntPtr?另外,数组的indexer仅支持int这一种数据类型,别的都不支持的
      

  3.   

    new string[(UIntPtr)(uint)i]---中括号中需要int型,你给出的却是UIntPtr型,之间不能隐式转换