我将 C# 代码中的类型名称和一些参数传递到用 VB 编写的导航框架中。导航框架在与使用 Type.GetConstructor(Types()) 传入的参数相匹配的类型上查找构造函数。我正在寻找的构造函数需要一个整数数组——vb 中的 Integer()。但是它得到一个 System.Int32 数组。我已经尝试了这个:
System.Int32[] int32Array = IdList.ToArray();
int[] intArray = new int[int32Array.Length];
for (int i = 0; i < int32Array.Length; i++ )
{
intArray[i] = (int)int32Array[i];
}
并且 VB 代码在另一端仍然看到 System.Int32,这意味着它没有找到构造函数。
有什么见解吗?
最佳答案
C# int
是System.Int32
的语法糖,VB Integer
也是相同类型的语法糖。所以调用一个或另一个应该没有问题。
但是,我会检查 GetConstructor
方法返回的构造函数信息的参数类型。
关于C#/vb.net 类型不匹配通过反射查找构造函数(Integer() vs System.Int32[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165466/