在C#中覆盖vb.net函数

时间:2016-10-22 13:43:11

标签: c# .net vb.net override

我对这件事情感到有些困惑。如何在C#中覆盖vb.net函数。我在vb.net的vb.net类中编写了这段代码:

 Public Overridable Function Test1() As Integer
        Dim t1 As Integer
        Return t1
 End Function 

我想在通过vb.net类继承的C#类中覆盖它。方法代码如下。

    public override  int Test1()
    {
        int t1 = 2;
        return t1;
    }

我收到错误:没有合适的方法来覆盖。

2 个答案:

答案 0 :(得分:1)

我刚刚测试了它,它似乎工作。我的代码:

Public Class TestClass
    Public Overridable Function Test() As Integer
        Dim t1 as Integer
        Return t1
    End Function
End Class

C#:

using MyVBProject;

public class CSharpClass : TestClass
{
    public override int Test()
    {
       int t1 = 2;
       return t1;
    }
}

要检查的一些事情:

  • C#项目引用了VB项目
  • C#文件是using vb名称空间
  • C#类实际上派生自VB类CSharpClass : TestClass

答案 1 :(得分:-1)

这可能是因为要进行公开覆盖,所有类都必须公开,相反,您可以尝试编写"受保护的覆盖"而不是"公共覆盖"。否则,我认为你的问题在堆栈溢出中是个问题:link to question