Le funzioni di callback sono in grado di accettare alcuni parametri, ma non vengono dichiarate esplicitamente quando si chiama la funzione.
Come funziona davvero? Che cosa sta succedendo ci consente di passare una funzione come parametro a un'altra funzione e includere implicitamente un parametro in questo?
Ad esempio:
JavaScript
$.get('somefile.php', {func : 'getUserNames'}).done(function(data){
if(data)
console.log(data); // '{"0" : "billy", "1" : "bobby"}'
// This is a js ajax call to a php file.
// How exactly am I retrieving "data" ?
}, 'json');
C #
private void BeginReadingData(){
NetworkStream stream = tcpClient.GetStream();
stream.BeginRead(buffer, 0, bufferSize, MyCallBack, tcpClient);
}
private void MyCallBack(IAsyncResult ar){
// Now I can operate on 'ar'
// why and how?
}
Questo è qualcosa che capisco come usare, ma non come spiegare o descrivere correttamente il processo.