Что означает эта ошибка при вызове метода? - PullRequest
1 голос
/ 25 марта 2011

Я только что начал в Вала, и я попытался создать простую программу, которая запрашивает два ввода:

  1. Int, который определяет степень цикла;и
  2. символ, содержащий I / R для итеративного или рекурсивного процесса.

Непосредственно перед компиляцией я получил эту ошибку:

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 для очень простой программы находится здесь здесь .

Вот фрагмент:

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 Ответ

1 голос
/ 25 марта 2011

Вы определили test_exec как экземплярный (нестатический) метод.В отличие от статического метода, метод экземпляра должен вызываться для экземпляра данного класса.Однако вы пытаетесь вызвать его без такого экземпляра и, таким образом, получаете ошибку.

Так что вам нужно либо создать экземпляр класса test0 и вызвать test_exec для этого (хотя это может привести кне имеет большого смысла, поскольку test_exec не зависит от какого-либо состояния объекта или не меняет его - фактически класс test0 не имеет никакого состояния) или создает test_exec, а также другие методы, вызываемые test_execстатичный.

...