使用VB接口,枚举等c#代码
本文关键字:代码 枚举 VB 接口 使用 | 更新日期: 2023-09-27 18:11:47
我有多个项目的解决方案,一些项目是用VB编写的,一些是用c#编写的。我想知道是否有一种方法可以在c#类中使用VB编写的接口和/或枚举?我下面的c#代码不能编译,但是我可以看到智能感知的接口。
VB代码:Namespace A
Public Inteface IHandler
Function Handle() As HandlerResult
End Interface
Public Enum HandlerResult
Success = 1
Fail = 0
End Enum
End Namespace
c#代码:using A;
namespace B
{
public class MyHandler : IHandler
{
public HandlerResult Handle(){
return HandlerResult.Success;
}
}
}
p。这是一个控制台/服务应用程序,不是ASP。(我知道这是可行的)。
UPD:对不起,伙计们,缺少对接口项目的引用。现在修好了。我认为VB项目中的引用与c#中的引用略有不同,这让我感到困惑。
如果您将c#代码放在与VB代码不同的程序集中,则可以工作。为了避免循环依赖,您可能必须将所有现有的VB代码移动到DLL程序集中。这样你就可以引用VB了。. Net程序集,并从主exe程序集引用这两个程序集。
注意,如果你这样做,从c#中查看的命名空间将不是简单的"A",它将嵌套在VBProject的默认命名空间下面,例如
using StackOverflow7843509.A;
namespace B
{
public class MyHandler : IHandler
{
public HandlerResult Handle()
{
return HandlerResult.Success;
}
}
}
在这个例子中,我创建的VB项目的默认名称空间是StackOverflow7843509
当代码被编译时,这一切都归结为同样的事情,所以答案(大部分)是肯定的-您可以使用编译后的VB。. NET库与c#,反之亦然