日期:2014-05-18  浏览次数:20940 次

在C#中, VBA.Collection类型的变量 怎么赋值呢?
我需要在C#中使用VB的一个自定义控件,它会返回一个动态数组(就是每次返回的数组元素个数不确定),由于C#不支持动态数组,所以我想在VB的自定义控件中,把动态数组改为用collection输出.

我改了VB控件后,在C#中使用它,系统提示它的参数是 VBA.Collection类型,于是我在C#中也定义了一个 VBA.Collection类型的变量,但是编译时提示使用了未赋值的局部变量。
  VBA.Collection UserList;
  UserList.Add("a"); //出错了,提示ADD方法没有采用一个参数的重载
  我看提示add的参数是 vold _collection.add( ref object item ,ref object key ,ref object before,ref object after)
  但是我不知该怎么写

  我其实就想传一个空的collection给VB控件,用来接收VB控件输出的collection值, 该怎么给它赋值呢?
  我初学C#,请大家帮忙


 

------解决方案--------------------
C#不支持动态数据?
List、Array等不是动态数组?
------解决方案--------------------
最简单的,你在VB中定义一个Add方法,调用集合添加的方法,而不是直接C#去调用集合的Add方法不就可以了。
------解决方案--------------------
VBA.Collection
在vba里做封装 ,开发接口吧。

------解决方案--------------------
用Linq的ToArray方法不是很方便吗?
------解决方案--------------------
那就这样
var array1 = Array.CreateInstance(typeof(long), 10);