我有一个用vb编写的函数
Public Function abc (ByVal x as Integer, ByVal y as String) As String
End Function
我想点击C#applcation中的按钮调用此函数。
答案 0 :(得分:1)
如果您的VB功能在模块内,则需要通过指定模块名称来调用它。
string result = MyVbModule.abc(1, "Hello");
您可能还需要指定命名空间,默认情况下是VB项目的名称:
string result = MyDll.MyVbModule.abc(1, "Hello");
答案 1 :(得分:0)
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