C#/vb.net 类型不匹配通过反射查找构造函数(Integer() vs System.Int32[])

标签 c# vb.net reflection interop constructor

我将 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# intSystem.Int32 的语法糖,VB Integer 也是相同类型的语法糖。所以调用一个或另一个应该没有问题。

但是,我会检查 GetConstructor 方法返回的构造函数信息的参数类型。

关于C#/vb.net 类型不匹配通过反射查找构造函数(Integer() vs System.Int32[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165466/

相关文章:

c# - 行为变化和空引用异常的生成

c# - 获取有关 Windows 服务内部状态的信息

c# - 如何比较泛型类型的值?

asp.net - 如何隐藏用户控件并删除它的空间

java - 为什么 Locale.class.isAssignableFrom([locale type].getClass()) 返回 false?

java - 如何在android项目中使用java反射获取父类(super class)中的子类列表

c# - 预减量和。递减后

vb.net - VB.NET 属性中的括号

css - 互相替换两个字符串 vb.net

c# - 如何在 AppDomain 下创建类的新实例