当我尝试将 VFP9 语言 COM/DLL 中的 Array
返回到我的 .NET C# 项目时
我收到一个 System.Object[*]
数组,但我无法转换为 System.Object[]
(没有星号)。
最佳答案
Timwi 的解决方案应该可以正常工作。您可以使用 Linq 做一些更简单的事情:
object[] newArray = sourceArray.Cast<object>().ToArray();
如果您需要重新创建一个 System.Object[*]
以将其传递回 VFP,您可以使用 this overload Array.CreateInstance
方法:
public static Array CreateInstance(
Type elementType,
int[] lengths,
int[] lowerBounds
)
您可以按如下方式使用它:
object[] normalArray = ...
// create array with lower bound of 1
Array arrayStartingAt1 =
Array.CreateInstance(
typeof(object),
new[] { normalArray.Length },
new[] { 1 });
Array.Copy(normalArray, 0, arrayStartingAt1, 1, normalArray.Length);
关于c# - 如何将 System.Object[*] 转换为 System.Object[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731287/