'方法'用作'类型'错误C#

时间:2011-02-15 18:29:55

标签: c#

所以我有这些代码,由于某种原因不能编译,因为它说我使用的方法作为一种类型.... 我出于某种奇怪的原因看不出它应该是什么错误,谷歌给我的唯一一篇文章,这里的文章不是没用。

所以我的问题是,这段代码出了什么问题:

static void Main() {
    Application.Run(new stat_checker());
}
public stat_checker() {
}

7 个答案:

答案 0 :(得分:10)

好吧,你正在调用new,所以看起来你想声明一个名为stat_checker类型

public class stat_checker : Form
{
}

或者,如果你想调用 stat_checker,你需要写:

Application.Run(stat_checker());

还需要将stat_checker更改为有效类型:

public Form stat_checker() {
    // Return something here
}

您是否尝试在中将此代码包含在名为stat_checker的类型中?如果是这样,它应该已经有效了:

using System;
using System.Windows.Forms;

class stat_checker : Form {

    static void Main() {
        Application.Run(new stat_checker());
    }
    public stat_checker() {
    }
}

如果你能告诉我们你真正想要实现的这些场景,那会有所帮助。我还建议您开始遵循.NET命名约定,例如使用StatChecker代替stat_checker

答案 1 :(得分:3)

您在方法定义中缺少返回类型:

public ??? stat_checker() {

}

如果没有返回类型,则认为它是stat_checker类型的构造函数。因此,如果您打算将其作为构造函数,则必须将其放在名为stat_checker的类中。

答案 2 :(得分:0)

根据您的意图,您需要做两件事之一。

stat_checker声明为Form

的类
static void Main() {
    Application.Run(new stat_checker());
}

public class stat_checker : Form {
// TODO: Implement the class
}

或声明stat_checker作为返回Form并删除new的方法,

static void Main() {
    Application.Run(stat_checker());
}
public Form stat_checker() { 
// TODO: Code that creates and returns a Form.
}

答案 3 :(得分:0)

在您的代码中, stat_checker 被声明为方法; new 关键字用于创建类型的实例(类等) - 两者不混合。

如果stat_check是一种方法,则丢失 Application.Run(new ...),然后直接调用它。

这是一个控制台应用程序吗?您要完成的更多细节将有助于我们为您提供建议。

答案 4 :(得分:0)

Application.Run();函数以表单作为参数,例如: Application.Run(new Form1());

答案 5 :(得分:0)

问题是stat_checked是一个函数,而不是ApplicationContext类的类构造函数,就像它需要的那样。

你应该做的更像是这样:

class StatChecker : ApplicationContext
{
    public StatChecker()
    {
        Console.WriteLine("Hello, world!");
    }
}

然后你可以像这样实例化它:

Application.Run(new StatChecker());

请注意,您的StatChecker类必须扩展或返回ApplicationContext。例如,典型的“Form”类扩展了ApplicationContext,这就是它工作的原因。

答案 6 :(得分:0)

它可能就像不匹配的命名空间一样简单它们在两个类中都需要相同才能使用不合格的新stat_checker()。这就是我的一次,这就是我到达这里的方式......; - )