如何从C#应用程序调用用VB编写的函数

时间:2012-02-17 10:42:51

标签: c# vb.net

我有一个用vb编写的函数

Public Function abc (ByVal x as Integer, ByVal y as String) As String 

End Function

我想点击C#applcation中的按钮调用此函数。

3 个答案:

答案 0 :(得分:1)

如果您的VB功能在模块内,则需要通过指定模块名称来调用它。

string result = MyVbModule.abc(1, "Hello");

您可能还需要指定命名空间,默认情况下是VB项目的名称:

string result = MyDll.MyVbModule.abc(1, "Hello");

答案 1 :(得分:0)

  1. 添加对包含代码的程序集的引用。
  2. 创建包含您想要的方法(函数)的类的对象 调用
  3. 调用方法objectname.abc(3,"SomeSting");

答案 2 :(得分:0)

使用本文,我能够在一个简单的Class模块中调用VB函数。不需要VB.dll。

我需要使用一些用VB编写的Date-math函数,这些函数庞大且几乎无法重写。我必须将我的评论作为答案,这样它才合适并易于理解。

我在C#解决方案内的C#项目旁边创建了一个VB项目。 我在C#项目中向VB添加了一个引用。

我在对象浏览器中查看了如何引用它。 两次引用了项目名称:“ VB_Stuff.VB_Stuff”。

在C#Razor页面中,我在顶部放置了一个 using VB_Stuff.VB_Stuff

在需要VB函数的Razor页面OnGetAsync中,我声明了一个具有VB类名称的对象: DateStuff obj = new DateStuff();

然后,我用Model的field调用了函数(名为fTest)。 。 。

DateStuff obj = new DateStuff();
Dances_Moderated.RecurYesNo =obj.fTest(Dances_Moderated.RecurYesNo.ToString());

我在“剃刀页面”即将加载并显示“ Dances_Moderated”模型的“详细信息”页面之前就已经这样做了。

没有.dll! C#解决方案中VB项目中VB类中的一些VB代码。 确保右键单击解决方案以添加项目,否则,无论您做什么,它都需要从“新项目”的“文件”菜单中添加新解决方案。

这是带有简单测试功能的简单VB类文件。

Namespace VB_Stuff

    Public Class DateStuff

        Public Function fTest(ByVal Recurring As String) As String

            fTest = Recurring & "xxxxx"

        End Function

    End Class

End Namespace