Как установить анонимный делегат в качестве одного параметра для InvokeSelf? - PullRequest
0 голосов
/ 03 апреля 2010

Я пытался использовать InvokeSelf для silverlight для связи с html: InvokeSelf может принимать object [] в качестве параметра при совершении вызова:

  ScriptObject Myjs;
  ScriptObject obj = Myjs.InvokeSelf(new object[] { element  }) as ScriptObject;

тогда я хочу сделать звонок как с анонимным делегатом:

Object obj;
obj = InvokeSelf(new object[] { element, delegate { OnUriLoaded(reference); } });

Я получил сообщение об ошибке: Невозможно преобразовать анонимный метод в тип «объект», так как это не тип делегата

Как решить эту проблему?

1 Ответ

1 голос
/ 03 апреля 2010

Проблема в том, что вы не можете назначить анонимный метод для object. Это потому, что компилятор C # не знает, какой тип делегата следует использовать. Вы можете исправить код, явно создав делегат. Поскольку это Silverlight, вы также можете использовать более краткие лямбда-выражения:

obj = InvokeSelf(new object[] 
  { element, new Action(() => OnUriLoaded(reference)) }); 

Тем не менее, я не уверен, возможно ли передать делегат в JavaScript, но вы должны быть в состоянии скомпилировать код и попробовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...