繁体   English   中英

使用ByRef和可选参数从C#从动态对象调用VB6方法

[英]Calling VB6 method from C# from dynamic object with ByRef and optional Parameters

我通常动态地调用类方法而没有问题,但是只有此方法不起作用,总是返回错误:

Dynamic conn = Activator.CreateInstance(Type.GetTypeFromProgID("MyTeam.MyClass"));
bool test = false;
conn.MyFunction(100,"test",DateTime.Now, test, test, "another","another","another");

VB外部类的原始方法:

Public Function MyFunction(ByVal Id As Integer, ByVal Var1 As String, ByVal Fecha As Date, 
                                   Optional ByRef Opcion1 As Boolean = False, 
                                   Optional ByRef Opcion2 As Boolean = False, 
                                   Optional ByVal Var1 As String = "", 
                                   Optional ByVal Var2 As String = "",
                                   Optional ByVal Var3 As String = "" ) As String
  • 问题1:是否可以省略可选参数?

  • 问题2:是否可以通过其他方式调用ByRef参数?

更新1:是的,C#支持ref / out参数,但是...“动态”类型调用方法的变量是否支持这种类型的输入?

为了在c#中传递byref,您在调用函数时也需要在参数前加上ref

conn.MyFunction(100,"test",DateTime.Now, ref test, ref test, "another","another","another");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM