gpt4 book ai didi

c# - 如何在vbscript中将对象作为方法参数传递

转载 作者:行者123 更新时间:2023-11-30 18:39:10 24 4
gpt4 key购买 nike

我尝试在 vbscript 中进行小测试,因此在 C# 中创建了非常非常简单的 dll(我是新手)并想在 vbscript 中使用它。

C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace myNamespace
{
public class myClass1
{
public string sVariable1="Variable content";
}

public class myClass2
{
public myClass1 myMethod2(myClass1 test)
{
return test;
}
}
}

和vbscript

Set oClass1 = CreateObject("myNamespace.myClass1")
Set oClass2 = CreateObject("myNamespace.myClass2")
WScript.Echo oClass1.sVariable1

Set return = oClass2.myMethod2(oClass1)
WScript.Echo return.sVariable1

运行 vbscript 后,在控制台上,第一个 echo 显示“可变内容”,接下来出现错误“microsoft vbscript 运行时错误无效过程调用或参数:‘oClass2.myMethod2’”。

我可以用这种方式传递对象吗?

引用MK2的笔记。问题不在于方法的返回类型,因为以下代码有效。

        public myClass1 myMethod2()
{
myClass1 test = new myClass1();
return test;
}

和vbs

Set return = oClass2.myMethod2()

现在在控制台上我有

Variable content
Variable content

但是如何在vbs中传递myClass1对象呢?

最佳答案

好的,我找到了解决方案。在 C# 中,作为参数 myMethod2,我将 ref 声明为对象,接下来我使用了类型转换。像这样:

    public myClass1 myMethod2(ref object refObject)
{
myClass1 test = (myClass1)refObject;
return test;
}

现在 vbscript 完美运行。我希望这对某人有帮助:)

关于c# - 如何在vbscript中将对象作为方法参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com