方法必须有一个返回类型(C#)

时间:2015-07-08 12:52:38

标签: c# button back forward

得到一个“方法必须有一个返回类型,我真的不明白为什么。

返回错误的是“public HelpView()”部分。 (代码顶部,将其变成块引用)

Web浏览器应用程序,代码用于后退和前进按钮。

public class HelpView
    {

    }
    List<Uri> HistoryStack;
int HistoryStack_Index;
bool fromHistory;

 //Constructor
public HelpView()
{
    InitializeComponent();
    HistoryStack = new List<Uri>();
    HistoryStack_Index = 0;
    fromHistory = false;
    webBrowser1.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated);
    updateNavButtons();
}

3 个答案:

答案 0 :(得分:3)

helpview可能不是您班级的确切名称。如果这是构造函数,请确保方法名称与您的类名匹配。如果这是一种方法,请将其更改为

public void helpView()

答案 1 :(得分:1)

编译错误发生的原因是编译器认为您正在尝试创建方法,并且方法需要具有返回类型(或void)。你不需要返回类型的唯一时间是你有一个构造函数,但是构造函数的规则是它们必须具有与类完全相同的名称。由于您没有相同的名称,因此编译器会像方法一样验证它。

解决方案是确保构造函数名称和类名完全相同。

响应OP的评论要求提供类定义(以及我发布答案的原因),这就是你的有效类和构造函数应该是什么样的。

请注意, CLASS NAME CONSTRUCTOR NAME 必须完全相同。

public class HelpView // <- CLASS NAME
{
    // Properties.
    List<Uri> HistoryStack;
    int HistoryStack_Index;
    bool fromHistory;

    // Constructor.
    public HelpView() // <- CONSTRUCTOR NAME
    {
        InitializeComponent();
        HistoryStack = new List<Uri>();
        HistoryStack_Index = 0;
        fromHistory = false;
        webBrowser1.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated);
        updateNavButtons();
    }
}

答案 2 :(得分:0)

如果我们引用您帖子中当前使用的代码,那么大括号的位置似乎已关闭。您为HelpView课程打开它们,然后立即关闭。

应该是:

public class HelpView
{
    List<Uri> HistoryStack;
    int HistoryStack_Index;
    bool fromHistory;

    //Constructor
    public HelpView()
    {
        InitializeComponent();
        HistoryStack = new List<Uri>();
        HistoryStack_Index = 0;
        fromHistory = false;
        webBrowser1.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated);
        updateNavButtons();
    }
}