Chamada de método sem passagem de argumentos
Galera, eu estou estudando C# e achei um código na internet e nele um trecho que não entendi de jeito nenhum.
a linha onde coloquei o comentário chama um método sem passar argumento algum, alguém poderia me explicar isso?
internal class PasswordThunk
{
private PasswordHandler OnPassword;
private object arg;
public Native.pem_password_cb Callback
{
get
{
if (this.OnPassword == null)
return null;
return this.OnPasswordThunk; //<------------------aqui. Esse método possui quatro parâmetros não opcionais, e está logo abaixo
}
}
public PasswordThunk(PasswordHandler client, object arg)
{
this.OnPassword = client;
this.arg = arg;
}
internal int OnPasswordThunk(IntPtr buf, int size, int rwflag, IntPtr userdata) // <--------------aqui está o método
{
try
{
string ret = OnPassword(rwflag != 0, this.arg);
byte[] pass = Encoding.ASCII.GetBytes(ret);
int len = pass.Length;
if (len > size)
len = size;
Marshal.Copy(pass, 0, buf, len);
return len;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return -1;
}
}
}
O que é isso??
Discussão (1)
Carregando comentários...