大佬教程收集整理的这篇文章主要介绍了.net – 如何正确编排VB脚本数组与COM组件中编写的C#,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
using System; using System.Runtime.Interopservices; using System.Linq; namespace StackOverflow { [ComVisible(true)] [Guid("2F4C19A6-9BB9-4ACF-90D1-BAF48696740A")] [InterfaCEType(ComInterfaCEType.InterfaceIsDual)] public interface IMyArrayDemo { [DispId(1)] int count { [return: MarshalAs(UnmanagedType.I4)] get; } [DispId(2)] object Data { [return: MarshalAs(UnmanagedType.Struct,SafeArraySubType = VarEnum.VT_ARRAY)] get; } [DispId(3)] object Names { [return: MarshalAs(UnmanagedType.Struct,SafeArraySubType = VarEnum.VT_ARRAY)] get; } } [ComVisible(true)] [Guid("7EF75834-22BE-4861-879B-EA0CE20E46E9")] [ClassInterface(ClassInterfaCEType.NonE)] [ProgId("StackOverflow.MyArrayDemo")] public class MyArrayDemo : IMyArrayDemo { object[] mData = new object[10] { 0,1,2,3,5,8,13,21,34 }; String[] mnames = new String[5] {"one","two","three","four","five"}; public int count { get { return mData.Length; } } public object Data { get { return mData; } } public object Names { get { return mnames.Cast<object>().ToArray(); } } } }
这可以使用以下vbscript进行测试:
Option Explicit Sub Main Dim o,v Set o = CreateObject("StackOverflow.MyArrayDemo") WScript.Echo "Count " & o.Count & " type: " & Typename(o.Data) & " names: " & Typename(o.Names) For Each v in o.Data : WScript.Echo CStr(v) : Next For Each v in o.Names : WScript.Echo v : Next End Sub Main
您可以看到这里报告的类型为Variant() – 即:一个变体数组.
C:\Users\pat>\windows\SysWOW64\cscript.exe -nologo arraytest.vbs Count 10 type: Variant() names: Variant() 0 1 1 2 3 5 8 13 21 34 one two three four five
以上是大佬教程为你收集整理的.net – 如何正确编排VB脚本数组与COM组件中编写的C#全部内容,希望文章能够帮你解决.net – 如何正确编排VB脚本数组与COM组件中编写的C#所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。