调用方法时出现此错误是什么意思?

时间:2011-03-25 15:15:17

标签: vala

我刚刚开始使用Vala,我尝试制作一个简单的程序,询问两个输入:

  1. 指定循环度的int;和
  2. 包含迭代或递归过程的I / R的char。
  3. 在编译之前,我收到了这个错误:

    test0.vala:8.5-8.16: error: Access to instance member `test0.test_exec' denied
            test_exec(q);
            ^^^^^^^^^^^ //the entire statement
    Compilation failed: 1 error(s), 0 warning(s)
    

    非常简单的程序的pastebin位于here

    这是一个片段:

    public static void main(string[] args)
    {
        stdout.printf("Greetings! How many cycles would you like? INPUT: ");
        int q=0;
        stdin.scanf("%d", out q);
        test_exec(q);
    }
    
    public void test_exec(int q)
    {
        //method code here
    }
    

    你能告诉我该怎么做,以及一些提示吗?感谢。

1 个答案:

答案 0 :(得分:1)

您将test_exec定义为实例(非静态)方法。与静态方法不同,需要在给定类的实例上调用实例方法。但是,你试图在没有这样的实例的情况下调用它,从而得到一个错误。

所以你要么需要创建一个test0类的实例并在其上调用test_exec(尽管这不会有意义,因为test_exec不依赖或改变任何状态对象 - 实际上test0类没有任何状态)或者使test_exec以及test_exec静态调用的其他方法。