Tôi làm C# excel interop. Tôi gọi các macro từ C# và tôi mong đợi các mảng của các đối tượng. Tôi có thể nhận mảng mảng 2 chiều từ các macro trả về mảng 2 chiều.Loại đối tượng `Object [*]` này mà tôi nhận được với COM interop là gì?
Tuy nhiên, một macro khác (bên thứ ba) được cho là trả lại mảng một chiều. Tôi không thể nhận được các (object[])xlApp.Run(...)
làm việc (nó ném một ngoại lệ), và các loại thông tin trong trình gỡ lỗi nói kết quả là loại Object[*]
. Thông báo thực tế từ ngoại lệ là
Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.
Loại Object[*]
này là gì và làm cách nào để lấy mảng một chiều từ này?
EDIT: Đã xảy ra với tôi rằng điều này có thể có nghĩa là SAFEARRAY của VARIANTS. Nhưng sau đó, hai câu hỏi phát sinh: tại sao mọi thứ đều ổn với mảng 2 chiều? Làm cách nào để chuyển đổi SAFEARRAY thành mảng C#?