Hallo zusammen!
Ich habe ein Problem mit einen externen Assembly, und zwar möchte ich folgende Funktion aufrufen:
Julmar.Atapi.TapiCall.BeginAnswer(System.AsyncCallback,object);
Im Beispielcode finde ich fiolngenden Aufruf:
TapiCall call = GetActiveCall();
....
call.BeginAccept(
delegate(IAsyncResult ar)
{
try
{
call.EndAccept(ar);
}
catch (TapiException ex)
{
LogError(ex.Message);
}
}, null);
Nur leider kommt bei mir folgende Fehlermeldung:
Argument '1': cannot convert from 'anonymus method' to 'System.AsyncCallback'
Woran liegt denn das?
Hallo f.ritz
tja, eigentlich blöd, weil der Compiler ja eigentlich erkennen kann, ob der Delegat eine passende Signatur hat, aber man kommt wohl nicht drum rum, auf den verlangten Delegattyp zu casten.
herbivore
Das habe ich auch schon gedacht, aber folgendes Code:
call.BeginAnswer((System.AsyncCallback)delegate(IAsyncResult ar)
{
try
{
call.EndAnswer(ar);
}
catch (TapiException ex)
{
return false;
}
}, null);
bringt dann folgende Fehlermeldung:
Error 1: Cannot convert anonymous method block to delegate type 'System.AsyncCallback' because some of the return types in the block are not implicitly convertible to the delegate return type
Error 2: Since 'System.AsyncCallback' returns void, a return keyword must not be followed by an object expression
Hallo f.ritz,
naja, in der Fehlermeldung steht doch auch genau das Problem: return false statt richtig nur return.
Siehe bitte Syntaxfehler selbst lösen (Compilerfehlermeldungen)
herbivore