Когда я пытаюсь скомпилировать следующее:
public static delegate void MoveDelegate (Actor sender, MoveDirection args);
Я получаю в качестве ошибки: «Модификатор 'static' недействителен для этого элемента».
Я реализую это в синглтоне с отдельным классом, который вызывает делегат. Проблема в том, что когда я использую экземпляр singleton в другом классе для вызова делегата (по идентификатору, а не по типу), я не могу этого сделать по какой-либо причине, даже когда я объявляю делегат нестатическим. Очевидно, я могу ссылаться на него только через тип напрямую тогда и только тогда, когда делегат является статическим.
Какова причина этого? Я использую MonoDevelop 2.4.2.
update
Попробовав одно из предложений со следующим кодом:
public void Move(MoveDirection moveDir)
{
ProcessMove(moveDir);
}
public void ProcessMove(MoveDirection moveDir)
{
Teleporter.MoveMethod mm = new Teleporter.MoveMethod(Move);
moveDelegate(this, moveDir);
}
Я получил ошибку обработки, в которой говорится, что MoveMethod должен быть типом, а не идентификатор.