代码之家  ›  专栏  ›  技术社区  ›  empi

如何使用可选参数从C调用用vb.net编写的方法

  •  3
  • empi  · 技术社区  · 15 年前

    我有一个用vb.net编写的方法。看起来是这样的:

    Shared Sub SomeMethod(ByVal Id As Guid, 
                          Optional ByVal str1 As String = "foo", 
                          Optional ByVal str2 As String = "")
    

    我想从C 3.0调用这个方法,并希望它使用它的默认参数。我试过了 System.Reflection.Missing.Value 但是我不能把它转换成字符串。

    有什么办法吗?

    事先谢谢你的帮助。

    3 回复  |  直到 15 年前
        1
  •  9
  •   Henk Holterman    15 年前

    不,在C 3中,您只需传递所有参数。C 4将具有可选和命名参数。

    当然,您可以创建一些过载的变体,但这只是一个近似值。

        2
  •  2
  •   STW    15 年前

    如果不使用C 4.0(这增加了对可选参数的支持),则无法使用它们;如果通过fxcop运行代码,则会看到专门标记为C无法使用的可选参数。

        3
  •  0
  •   Andrey    15 年前

    如果要检索可选参数的值,则可以使用反射,此信息存储在相应参数的自定义属性中。